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


Функция WSCEnumNameSpaceProvidersEx32 (ws2spi.h)

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

Синтаксис

INT WSAAPI WSCEnumNameSpaceProvidersEx32(
  [in, out] LPDWORD                lpdwBufferLength,
  [out]     LPWSANAMESPACE_INFOEXW lpnspBuffer
);

Параметры

[in, out] lpdwBufferLength

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

[out] lpnspBuffer

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

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

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

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

Комментарии

WSCEnumNameSpaceProvidersEx32 — это строго 32-разрядная версия WSAEnumNameSpaceProvidersEx. На 64-разрядном компьютере все вызовы не только 32-разрядные (например, все функции, которые не заканчиваются на "32"), работают в собственном 64-разрядном каталоге. Процессы, выполняемые на 64-разрядном компьютере, должны использовать определенные вызовы 32-разрядных функций для работы со строго 32-разрядным каталогом и сохранения совместимости. Определения и семантика конкретных 32-разрядных вызовов совпадают с собственными аналогами.

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

32-разрядная функция SPI эквивалентна собственной функции API (WSAEnumNameSpaceProvidersEx), так как отсутствует концепция поставщика "скрытого" пространства имен.

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

Требования

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

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

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProvidersEx

WSANAMESPACE_INFOEXW

WSCEnumNameSpaceProviders32

WSCInstallNameSpaceEx32