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


Функция 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 зависит от сетей, установленных на компьютере.

Функция 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

См. также раздел

NETRESOURCE

WNetCloseEnum

WNetEnumResource

Общие сведения о сети Windows (WNet)

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