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