Função WSAEnumNameSpaceProvidersExW (winsock2.h)

A função WSAEnumNameSpaceProvidersEx recupera informações sobre provedores de namespace disponíveis.

Sintaxe

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

Parâmetros

[in, out] lpdwBufferLength

Na entrada, o número de bytes contidos no buffer apontado por lpnspBuffer. Na saída (se a função falhar e o erro for WSAEFAULT), o número mínimo de bytes a serem alocados para o buffer lpnspBuffer para permitir que ele recupere todas as informações solicitadas. O buffer passado para WSAEnumNameSpaceProvidersEx deve ser suficiente para manter todas as informações do namespace.

[out] lpnspBuffer

Um buffer preenchido com estruturas WSANAMESPACE_INFOEX . As estruturas retornadas estão localizadas consecutivamente no cabeçalho do buffer. As informações de tamanho variável referenciadas por ponteiros nas estruturas apontam para locais dentro do buffer localizado entre o final das estruturas de tamanho fixo e o final do buffer. O número de estruturas preenchidas é o valor retornado de WSAEnumNameSpaceProvidersEx.

Retornar valor

A função WSAEnumNameSpaceProvidersEx retorna o número de estruturas WSANAMESPACE_INFOEX copiadas para lpnspBuffer. Caso contrário, o valor SOCKET_ERROR será retornado e um número de erro específico poderá ser recuperado chamando WSAGetLastError.

Código do erro Significado
WSAEFAULT
O parâmetro lpnspBuffer era um ponteiro NULL ou o comprimento do buffer, lpdwBufferLength, era muito pequeno para receber todas as estruturas de WSANAMESPACE_INFOEX relevantes e informações associadas. Quando esse erro é retornado, o comprimento do buffer necessário é retornado no parâmetro lpdwBufferLength .
WSANOTINITIALISED
O WS2_32.DLL não foi inicializado. O aplicativo deve primeiro chamar WSAStartup antes de chamar qualquer função do Windows Sockets.
WSA_NOT_ENOUGH_MEMORY
Não havia memória suficiente para executar a operação.

Comentários

A função WSAEnumNameSpaceProvidersEx é uma versão aprimorada da função WSAEnumNameSpaceProviders . O blob de dados específico do provedor associado à entrada de namespace passada no parâmetro lpProviderInfo para a função WSCInstallNameSpaceEx pode ser consultado usando a função WSAEnumNameSpaceProvidersEx .

Atualmente, o único provedor de namespace incluído no Windows que define informações no membro ProviderSpecific da estrutura WSANAMESPACE_INFOEX é o provedor NS_EMAIL. O formato do membro ProviderSpecific para um provedor de namespace NS_EMAIL é uma estrutura NAPI_PROVIDER_INSTALLATION_BLOB .

Quando UNICODE ou _UNICODE é definido, WSAEnumNameSpaceProvidersEx é definido como WSAEnumNameSpaceProvidersExW, a versão Unicode dessa função. O parâmetro lpnspBuffer é definido para o tipo de dados LPSAWSANAMESPACE_INFOEXW e WSANAMESPACE_INFOEXW estruturas são retornadas com êxito.

Quando UNICODE ou _UNICODE não está definido, WSAEnumNameSpaceProvidersEx é definido como WSAEnumNameSpaceProvidersExA, a versão ANSI dessa função. O parâmetro lpnspBuffer é definido para o tipo de dados LPSAWSANAMESPACE_INFOEXA e WSANAMESPACE_INFOEXA estruturas são retornadas com êxito.

Windows 8.1 e Windows Server 2012 R2: a função WSAEnumNameSpaceProvidersExW tem suporte para aplicativos da Windows Store em Windows 8.1, Windows Server 2012 R2 e posteriores.

Observação

O cabeçalho winsock2.h define WSAEnumNameSpaceProvidersEx como um alias que seleciona automaticamente a versão ANSI ou Unicode dessa função com base na definição da constante de pré-processador UNICODE. Misturar o uso do alias neutro de codificação com código que não seja neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Convenções para protótipos de função.

Requisitos

Requisito Valor
Cliente mínimo com suporte Windows 8.1, Windows Vista [aplicativos da área de trabalho | Aplicativos UWP]
Servidor mínimo com suporte Windows Server 2008 [aplicativos da área de trabalho | Aplicativos UWP]
Plataforma de Destino Windows
Cabeçalho winsock2.h
Biblioteca Ws2_32.lib
DLL Ws2_32.dll

Confira também

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32