Compartilhar via


WSAEnumProtocols

Windows Mobile SupportedWindows Embedded CE Supported

9/8/2008

Essa função recupera informações sobre disponível protocolos transporte.

Syntax

int WSAEnumProtocols(
  LPINT lpiProtocols,
  LPWSAPROTOCOL_INFO lpProtocolBuffer,
  ILPDWORD lpdwBufferLength
);

Parameters

  • lpiProtocols
    [no] Matriz NULL-Terminated de iProtocol Os valores. Este parâmetro é opcional; Se lpiProtocols é NULL, informações em disponível todos os protocolos é retornado. Caso contrário, informações são recuperadas somente para os protocolos listados na matriz.
  • lpProtocolBuffer
    [out] Buffer que é preenchida com WSAPROTOCOL_INFO estruturas.
  • lpdwBufferLength
    [in, Out] Na entrada, a contagem de bytes na lpProtocolBuffer reserva passados para essa função. Na saída, o tamanho do buffer mínimo que pode ser passado para esta função para recuperar todos os as informações solicitadas. Essa rotina não tem nenhuma capacidade para enumerar sobre múltiplo chama; a reserva Passed-in deve ser grande o suficiente para armazenar todas as entradas para a rotina seja bem-sucedida. Isso reduz a complexidade do API e não deve representar um problema porque o número de protocolos carregados em uma máquina é geralmente pequeno.

Return Value

Se não houver erro, essa função retorna o número de protocolos a serem relatados. Se ocorrer um erro, será retornado um valor de SOCKET_ERROR e um código de erro específicos podem ser recuperadas por chamado de WSAGetLastError função. A seguinte tabela mostra uma lista dos códigos de erro possível.

Código de erro Descrição

WSANOTINITIALISED

Um bem-sucedido WSAStartup chamar deve ocorrer antes de usar essa função.

WSAENETDOWN

Falha no subsistema da rede.

WSAEINPROGRESS

Um bloqueio é chamar sockets do Windows (Winsock) em andamento.

WSAEINVAL

Um dos parâmetros especificados era inválido.

WSAENOBUFS

O tamanho do buffer era muito pequeno para receber todos o relevantes WSAPROTOCOL_INFO Estruturas e associado informações. Passe uma reserva pelo menos tão grande quanto o valor retornado nos lpdwBufferLength.

WSAEFAULT

Um ou mais de lpiProtocols, lpProtocolBuffer, ou lpdwBufferLength argumentos não são um válido parte espaço de endereço o usuário.

Remarks

Essa função é usada para descobrir informações sobre a coleção de protocolos transporte cadeias provedor instaladas o local máquina. Como em camadas protocolos só estarão utilizáveis por aplicativos quando instalado no provedor cadeias, informações em em camadas protocolos não está incluído no lpProtocolBuffer. O lpiProtocols parâmetro pode ser usado como um filtro para restringir a quantidade de informações fornecidas. Freqüentemente, lpiProtocols Serão fornecidas como um NULL ponteiro que irá causar a função para retornar informações em disponível todos os protocolos transporte e cadeias provedor.

A WSAPROTOCOL_INFO estrutura é fornecida na reserva apontada pelo lpProtocolBuffer Para cada solicitada protocolo. Se a reserva fornecida não for grande o suficiente (conforme indicado pela entrada de valor lpdwBufferLength ), o valor apontado pelo lpdwBufferLength será atualizado para indicar o exigido tamanho do buffer. O aplicativo, em seguida, deverá obter uma reserva grande o suficiente e chamar este WSAEnumProtocols novamente.

A ordem na qual o WSAPROTOCOL_INFO Estruturas constar a reserva coincide com a ordem na qual as entradas protocolo foram registradas pelo provedor de serviço usando ws2.dll ou com qualquer reordenando subseqüentes que ocorreram através do utilitário Soquetes do Windows ou DLL fornecido para estabelecer provedores TCP/IP usar como padrão.

Requirements

Header winsock2.h
Library Ws2.lib
Windows Embedded CE Windows CE .NET 4.0 and later
Windows Mobile Windows Mobile Version 5.0 and later

See Also

Reference

WSAGetLastError
WSAStartup