[ros-general] WinAPI questions

Robert Köpferl rob at koepferl.de
Tue Mar 23 22:15:56 UTC 2004


AFAIK
The "Explorer Problem" you mentioned is the following:
Explorer or shell.dll provides a system with the explorer name-space 
(Desktop etc). This is implemented via COM and that originally single 
threaded. for multiple threadsthis namespace uses the so called 
ApartmentTreading wich is a serialization throughout threads. Processes 
get serialized that way or anohter. And when this namespace-CoM object 
runs in a user interface thread and blocks, everything is blocked.
Ohter explorers (different Processes),  Burner prgs, File open boxes.....

Martin ... can you avoid this problem somehow?

Jan Tisje schrieb:

> 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
> _______________________________________________
> ros-general mailing list
> ros-general at reactos.com
> http://reactos.com/mailman/listinfo/ros-general



More information about the Ros-general mailing list