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