WSAEnumProtocols
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 |