Функция WSAEnumNameSpaceProvidersExA (winsock2.h)

Функция WSAEnumNameSpaceProvidersEx извлекает сведения о доступных поставщиках пространств имен.

Синтаксис

INT WSAAPI WSAEnumNameSpaceProvidersExA(
  [in, out] LPDWORD                lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOEXA lpnspBuffer
);

Параметры

[in, out] lpdwBufferLength

На входных данных — количество байтов, содержащихся в буфере, на который указывает lpnspBuffer. На выходных данных (если функция завершается сбоем и возникает ошибка WSAEFAULT) минимальное количество байтов, выделяемых для буфера lpnspBuffer , чтобы позволить ему получить все запрошенные сведения. Буфера, передаваемого в WSAEnumNameSpaceProvidersEx , должно быть достаточно для хранения всех сведений о пространстве имен.

[out] lpnspBuffer

Буфер, заполненный WSANAMESPACE_INFOEX структурами. Возвращаемые структуры расположены последовательно в начале буфера. Сведения переменной величины, на которые ссылаются указатели в структурах, указывают на расположения в буфере, расположенные между концом структур фиксированного размера и концом буфера. Число заполненных структур — это возвращаемое значение WSAEnumNameSpaceProvidersEx.

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

Функция WSAEnumNameSpaceProvidersEx возвращает количество WSANAMESPACE_INFOEX структур, скопированных в lpnspBuffer. В противном случае возвращается значение SOCKET_ERROR, а конкретный номер ошибки можно получить, вызвав WSAGetLastError.

Код ошибки Значение
WSAEFAULT
Параметр lpnspBuffer был указателем NULL или длина буфера lpdwBufferLength была слишком мала для получения всех соответствующих WSANAMESPACE_INFOEX структур и связанных сведений. При возврате этой ошибки в параметре lpdwBufferLength возвращается необходимая длина буфера.
WSANOTINITIALISED
WS2_32.DLL не инициализирована. Приложение должно сначала вызвать WSAStartup , прежде чем вызывать какие-либо функции windows Sockets.
WSA_NOT_ENOUGH_MEMORY
Недостаточно памяти для выполнения операции.

Комментарии

Функция WSAEnumNameSpaceProvidersEx — это расширенная версия функции WSAEnumNameSpaceProviders . Большой двоичный объект данных конкретного поставщика, связанный с записью пространства имен, переданной в параметре lpProviderInfo функции WSCInstallNameSpaceEx , можно запросить с помощью функции WSAEnumNameSpaceProvidersEx .

В настоящее время единственным поставщиком пространств имен, включенным в Windows, который задает сведения в элементе ProviderSpecific структуры WSANAMESPACE_INFOEX , является поставщик NS_EMAIL. Формат члена ProviderSpecific для поставщика пространства имен NS_EMAIL является NAPI_PROVIDER_INSTALLATION_BLOB структурой.

Если определен ЮНИКОД или _UNICODE, WSAEnumNameSpaceProvidersEx определяется как WSAEnumNameSpaceProvidersExW, версия юникода этой функции. Параметр lpnspBuffer определяется для типа данных LPSAWSANAMESPACE_INFOEXW , а WSANAMESPACE_INFOEXW структуры возвращаются при успешном выполнении.

Если юникод или _UNICODE не определены, WSAEnumNameSpaceProvidersEx определяется как WSAEnumNameSpaceProvidersExA, версия ANSI этой функции. Параметр lpnspBuffer определяется для типа данных LPSAWSANAMESPACE_INFOEXA и WSANAMESPACE_INFOEXA структуры возвращаются при успешном выполнении.

Windows 8.1 и Windows Server 2012 R2. Функция WSAEnumNameSpaceProvidersExW поддерживается для приложений Магазина Windows на Windows 8.1, Windows Server 2012 R2 и более поздних версий.

Примечание

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

Требования

Требование Значение
Минимальная версия клиента Windows 8.1, Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header winsock2.h
Библиотека Ws2_32.lib
DLL Ws2_32.dll

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

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32