Поделиться через


Функция WNetOpenEnumA (winnetwk.h)

Функция WNetOpenEnum запускает перечисление сетевых ресурсов или существующих подключений. Можно продолжить перечисление, вызвав функцию WNetEnumResource.

Синтаксис

DWORD WNetOpenEnumA(
  [in]  DWORD          dwScope,
  [in]  DWORD          dwType,
  [in]  DWORD          dwUsage,
  [in]  LPNETRESOURCEA lpNetResource,
  [out] LPHANDLE       lphEnum
);

Параметры

[in] dwScope

Область перечисления. Этот параметр может быть одним из следующих значений.

Ценность Значение
RESOURCE_CONNECTED
Перечислите все подключенные ресурсы. Функция игнорирует параметр dwUsage. Дополнительные сведения см. в следующем разделе "Примечания".
RESOURCE_CONTEXT
Перечисляйте только ресурсы в сетевом контексте вызывающего объекта. Укажите это значение для представления "Окрестности сети". Функция игнорирует параметр dwUsage.
RESOURCE_GLOBALNET
Перечисление всех ресурсов в сети.
RESOURCE_REMEMBERED
Перечисление всех запоминаемых (постоянных) подключений. Функция игнорирует параметр dwUsage.

[in] dwType

Типы ресурсов для перечисления. Этот параметр может быть сочетанием следующих значений.

Ценность Значение
RESOURCETYPE_ANY
Все ресурсы. Это значение нельзя объединить с RESOURCETYPE_DISK или RESOURCETYPE_PRINT.
RESOURCETYPE_DISK
Все ресурсы диска.
RESOURCETYPE_PRINT
Все ресурсы печати.
 

Если сетевой поставщик не может различать ресурсы печати и диска, он может перечислить все ресурсы.

[in] dwUsage

Тип использования ресурсов для перечисления. Этот параметр может быть сочетанием следующих значений.

Ценность Значение
0
Все ресурсы.
RESOURCEUSAGE_CONNECTABLE
Все подключенные ресурсы.
RESOURCEUSAGE_CONTAINER
Все ресурсы контейнера.
RESOURCEUSAGE_ATTACHED
Установка этого значения заставляет WNetOpenEnum завершиться ошибкой, если пользователь не прошел проверку подлинности. Функция завершается ошибкой, даже если сеть разрешает перечисление без проверки подлинности.
RESOURCEUSAGE_ALL
Установка этого значения эквивалентна настройке RESOURCEUSAGE_CONNECTABLE, RESOURCEUSAGE_CONTAINER и RESOURCEUSAGE_ATTACHED.
 

Этот параметр игнорируется, если параметр dwScope не равен RESOURCE_GLOBALNET. Дополнительные сведения см. в следующем разделе "Примечания".

[in] lpNetResource

Указатель на структуру NETRESOURCE , указывающую контейнер для перечисления. Если параметр dwScope не RESOURCE_GLOBALNET, этот параметр должен быть NULL.

Если этот параметр null, предполагается корневой каталог сети. (Система упорядочивает сеть в виде иерархии; корневой каталог является самым верхним контейнером в сети.)

Если этот параметр не NULL, он должен указывать на структуру NETRESOURCE. Эта структура может быть заполнена приложением или она может быть возвращена вызовом функции WNetEnumResource. Структура NETRESOURCE должна указывать ресурс контейнера; То есть значение RESOURCEUSAGE_CONTAINER должно быть указано в параметре dwUsage.

Чтобы перечислить все сетевые ресурсы, приложение может начать перечисление, вызвав WNetOpenEnum с параметром lpNetResource значение NULL, а затем используйте возвращенный дескриптор для вызова WNetEnumResource для перечисления ресурсов. Если один из ресурсов в массив е NETRESOURCE, возвраща емого функцией WNetEnumResource, является ресурсом контейнера, можно вызвать WNetOpenEnum, чтобы открыть ресурс для дальнейшего перечисления.

[out] lphEnum

Указатель на дескриптор перечисления, который можно использовать в последующем вызове WNetEnumResource.

Возвращаемое значение

Если функция выполнена успешно, возвращаемое значение NO_ERROR.

Если функция завершается ошибкой, возвращаемое значение является системным кодом ошибки, например одно из следующих значений.

Возвращаемый код Описание
ERROR_NOT_CONTAINER
Параметр lpNetResource не указывает на контейнер.
ERROR_INVALID_PARAMETER
Недопустимый параметр dwScope или параметр dwType или недопустимое сочетание параметров.
ERROR_NO_NETWORK
Сеть недоступна.
ERROR_EXTENDED_ERROR
Произошла ошибка, зависявшая от сети. Чтобы получить описание ошибки, вызовите функцию WNetGetLastError.
ERROR_INVALID_ADDRESS
Имя удаленного сетевого ресурса, указанное в структуре NETRESOURCE, разрешенной в недопустимый сетевой адрес.

Замечания

Если параметр dwScope равен RESOURCE_CONNECTED, сетевое подключение, созданное с помощью сети Microsoft LAN Manager, опущено из перечисления, если подключение было сделано приложением в другом сеансе входа, чем приложение, вызывающее функцию WNetOpenEnum. Это связано с тем, что подключения, сделанные с помощью Microsoft LAN Manager, видны только приложениям, работающим в том же сеансе входа, что и приложение, которое сделало подключение. (Чтобы включить подключение в перечисление, недостаточно для запуска приложения в учетной записи пользователя, создающей подключение.)

Точное толкование RESOURCE_CONTEXT в параметре dwScope dwScope зависит от сетей, установленных на компьютере.

Функция WNetOpenEnum используется для начала перечисления ресурсов в одном контейнере. В следующих примерах показана иерархическая структура сети Microsoft LAN Manager и сети Novell NetWare и идентификация контейнеров.

LanMan (container, in this case the provider) 
  ACCOUNTING (container, in this case the domain) 
    \\ACCTSPAY (container, in this case the server) 
      PAYFILES (disk) 
      LASERJET (print) 
 
NetWare (container, in this case the provider) 
  MARKETING (container, in this case the server) 
    SYS (disk, first one on any NetWare server) 
    ANOTHERVOLUME (disk) 
    LASERJET (print) 

Примеры

Пример кода, демонстрирующий определяемую приложением функцию, которая перечисляет все ресурсы в сети, см. в разделе Перечисление сетевых ресурсов.

Заметка

Заголовок winnetwk.h определяет WNetOpenEnum как псевдоним, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 2000 Профессиональный [только классические приложения]
минимальный поддерживаемый сервер Windows 2000 Server [только классические приложения]
целевая платформа Виндоус
заголовка winnetwk.h
библиотеки Mpr.lib
DLL Mpr.dll

См. также

NETRESOURCE

WNetCloseEnum

WNetEnumResource

Обзор сети Windows (WNet)

Сетевые функции Windows