Compartilhar via


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 do namespace.

[out] lpnspBuffer

Um buffer preenchido com estruturas de WSANAMESPACE_INFOEX. As estruturas retornadas estão localizadas consecutivamente na cabeça do buffer. 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.

Valor de retorno

A função WSAEnumNameSpaceProvidersEx retorna o número de estruturas de 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 de 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 as funções do Windows Sockets.
WSA_NOT_ENOUGH_MEMORY
Não havia memória suficiente para executar a operação.

Observações

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 consultada usando função WSAEnumNameSpaceProvidersEx.

Atualmente, o único provedor de namespace incluído no Windows que define informações no ProviderSpecific membro 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 como o tipo de dados LPSAWSANAMESPACE_INFOEXW e as estruturas de WSANAMESPACE_INFOEXW são retornadas com êxito.

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

windows 8.1 e windows server 2012 R2: a função WSAEnumNameSpaceProvidersExW tem suporte para aplicativos da Windows Store no Windows 8.1, Windows Server 2012 R2 e posterior.

Nota

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 do pré-processador UNICODE. A combinação do uso do alias neutro de codificação com código que não é neutro em codificação pode levar a incompatibilidades que resultam em erros de compilação ou de runtime. Para obter mais informações, consulte Conventions for Function Prototypes.

Requisitos

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

Consulte também

NAPI_PROVIDER_INSTALLATION_BLOB

WSAEnumNameSpaceProviders

WSANAMESPACE_INFOEX

WSCEnumNameSpaceProvidersEx32

WSCInstallNameSpaceEx32