[ros-general] WinAPI questions

Jan Tisje jan.tisje at gmx.de
Tue Mar 23 18:41:45 UTC 2004


hi, 

I have some problems accessing the filesystem. 

How do I discover the network neigbourhood (servers and shares)? 

I used WNetOpenEnum / WNetEnumResource, but they return a framework of
"containers". I did not find an easy  way to select the container that
lists the known computers. It looks like Windows identifies the
containers by their localized names: (outch!)

Microsoft-Terminaldienste	 Scope: GLOBALNET	 Type: ANY	 Display: GENERIC SERVER	 Usage:	Container
Microsoft Windows-Netzwerk	 Scope: GLOBALNET	 Type: ANY	 Display: GENERIC SERVER	 Usage:	Container
  TEAM	 Scope: GLOBALNET	 Type: ANY	 Display: DOMAIN GENERIC	 Usage:	Container
    \\JPT	 Scope: GLOBALNET	 Type: ANY	 Display: GENERIC SERVER	 Usage:	Container
      \\JPT\SPIELE	 Scope: GLOBALNET	 Type: ANY DISK	 Display: DOMAIN GENERIC SERVER SHARE	 Usage:	Share
      \\JPT\DVD	 Scope: GLOBALNET	 Type: ANY DISK	 Display: DOMAIN GENERIC SERVER SHARE	 Usage:	Share
      \\JPT\DATEN	 Scope: GLOBALNET	 Type: ANY DISK	 Display: DOMAIN GENERIC SERVER SHARE	 Usage:	Share
[...]

Is there any other way of listing shares and servers? 
Do you know a trick to get the network neigbourhoud instead of terminal
services and the other stuff?

This calls are SLOW. This is the part, which made me hate MS explorer.
because it hangs whole minutes doing strange things on the network. 
Will ROS be more stable and fast? 

Or should I keep an eye on multithreading?
Or implement SMB from scratch? 


BTW, How do you find files / dirs in filesystem? 
I used delphi findfirst/findnext, which seems to be a direct mapping to
WinAPI findfirst/next. 

When I try to access removable drives without media, I get those annoying
requests to insert a medium into the drive. 
the modern variant of old "abort retry ignore", but with no effect.

Any way to work around? read the state of the drive before reading files?
How?

Jan



More information about the Ros-general mailing list