Функция WNetOpenEnumA (winnetwk.h)
Функция WNetOpenEnum запускает перечисление сетевых ресурсов или существующих подключений. Вы можете продолжить перечисление, вызвав функцию WNetEnumResource .
Синтаксис
DWORD WNetOpenEnumA(
[in] DWORD dwScope,
[in] DWORD dwType,
[in] DWORD dwUsage,
[in] LPNETRESOURCEA lpNetResource,
[out] LPHANDLE lphEnum
);
Параметры
[in] dwScope
Область перечисления. Этот параметр может принимать одно из указанных ниже значений.
[in] dwType
Перечисляемые типы ресурсов. Этот параметр может быть сочетанием следующих значений.
Значение | Значение |
---|---|
|
Все ресурсы. Это значение нельзя сочетать с RESOURCETYPE_DISK или RESOURCETYPE_PRINT. |
|
Все ресурсы диска. |
|
Все ресурсы печати. |
Если поставщик сети не может отличить ресурсы печати и диска, он может перечислить все ресурсы.
[in] dwUsage
Тип использования ресурса для перечисления. Этот параметр может быть сочетанием следующих значений.
Этот параметр игнорируется, если только параметр 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.
Если функция завершается сбоем, возвращаемое значение представляет собой системный код ошибки, например одно из следующих значений.
Код возврата | Описание |
---|---|
|
Параметр lpNetResource не указывает на контейнер. |
|
Недопустимый параметр dwScope или dwType , либо имеется недопустимое сочетание параметров. |
|
Сеть недоступна. |
|
Произошла ошибка, относявшаяся к сети. Чтобы получить описание ошибки, вызовите функцию WNetGetLastError . |
|
Имя удаленного сетевого ресурса, указанное в структуре NETRESOURCE , разрешается в недопустимый сетевой адрес. |
Комментарии
Если параметр dwScope равен RESOURCE_CONNECTED, сетевое подключение, созданное с использованием сети Microsoft LAN Manager, пропускается из перечисления, если подключение было установлено приложением, работающим в сеансе входа в систему, отличном от того, которое вызывает функцию WNetOpenEnum . Это связано с тем, что подключения, выполненные с помощью Microsoft LAN Manager, видны только приложениям, работающим в том же сеансе входа, что и приложение, которое сделало подключение. (Чтобы включить подключение в перечисление, недостаточно, чтобы приложение выполнялось в учетной записи пользователя, создавшего подключение.)
Точная интерпретация RESOURCE_CONTEXT в параметре 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 Professional [только классические приложения] |
Минимальная версия сервера | Windows 2000 Server [только классические приложения] |
Целевая платформа | Windows |
Header | winnetwk.h |
Библиотека | Mpr.lib |
DLL | Mpr.dll |