Função WSAEnumNameSpaceProvidersExA (winsock2.h)
A função WSAEnumNameSpaceProvidersEx recupera informações sobre provedores de namespace disponíveis.
Sintaxe
INT WSAAPI WSAEnumNameSpaceProvidersExA(
[in, out] LPDWORD lpdwBufferLength,
[out] LPWSANAMESPACE_INFOEXA 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 conter todas as informações de namespace.
[out] lpnspBuffer
Um buffer preenchido com estruturas de WSANAMESPACE_INFOEX . As estruturas retornadas estão localizadas consecutivamente na cabeça 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 |
---|---|
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 . | |
O WS2_32.DLL não foi inicializado. O aplicativo deve primeiro chamar WSAStartup antes de chamar qualquer função do Windows Sockets. | |
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 estiver definido, WSAEnumNameSpaceProvidersEx será 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 |