Re: перечисление SMB-соединений
От: Andrew S Россия http://alchemy-lab.com
Дата: 30.10.02 09:01
Оценка:
Ответы ниже

B>Вопрос №1.

B>Известно имя удалённого ресурса: \\remote_host_name\\remote_resource_name
B>Как узнать, существует ли на локальном компьютере соединение с этим ресурсом (и если существует — закрыть его)?

WNetCancelConnection


B>Вопрос №2.

B>Каким образом перечислить все SMB-соединения локального компьютера с ресурсами удалённого компьютера? Вероятно, следует использовать WNetOpenEnum/WNetEnumResources/WNetCloseEnum, только тогда не очень понятно, какие значения должны быть у полей NETRESOURCE, которая передаётся при первом вызове WNetOpenEnum?

или NetUseEnum, если нужны соединения.


если тебе нужны все ресурсы — тогда If the dwScope parameter is not RESOURCE_GLOBALNET, this parameter must be NULL.

Также
To enumerate all network resources, an application can begin the enumeration by calling WNetOpenEnum with the lpNetResource parameter set to NULL, and then use the returned handle to call WNetEnumResource to enumerate resources. If one of the resources in the NETRESOURCE array returned by the WNetEnumResource function is a container resource, you can call WNetOpenEnum to open the resource for further enumeration.

Т.о. тебе надо проверять флаг RESOURCEUSAGE_CONTAINER в dwUsage, и если он там установлен, тогда вызывать опять WNetOpenEnum для этого ресурса (если надо, конечно). таким образом ты рекурсивно пройдешься по всем доменам etc.
Если нужны только локальные, тогда задаешь в dwScope RESOURCE_CONNECTED.

B>Вопрос №3.

B>Извините, из MSDN'а не очень понял назначение функций NetUseEnum. Может, кто объяснит?

Делает ровно то же, что и команда net use.

B>Спасибо.

Успехов
http://www.rusyaz.ru/pr — стараемся писАть по-русски
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.