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


Функция 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.
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: функция WSAEnumNameSpaceProvidersEx W поддерживается для приложений Магазина Windows 8.1, Windows Server 2012 R2 и более поздних версий.

Заметка

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

Требования

Требование Ценность
минимальные поддерживаемые клиентские Windows 8.1, Windows Vista [классические приложения | Приложения UWP]
минимальный поддерживаемый сервер Windows Server 2008 [классические приложения | Приложения UWP]
целевая платформа Виндоус
заголовка winsock2.h
библиотеки Ws2_32.lib
DLL Ws2_32.dll

См. также

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32