WSAGetOverlappedResult
9/8/2008
Essa função retorna os resultados de uma operação sobreposta na Soquete especificado.
Syntax
BOOL WSAGetOverlappedResult(
SOCKET s,
LPWSAOVERLAPPED lpOverlapped,
LPDWORD lpcbTransfer,
BOOL fWait,
LPDWORD lpdwFlags
);
Parameters
- s
[no] Descritor identificando a Soquete. Este é o mesmo Soquete que foi especificado quando a operação sobreposta foi iniciada por um chamar para o WSARecv, WSARecvFrom, WSASend, WSASendTo, ou WSAIoctl função.
- lpOverlapped
[no] Ponteiro para um WSAOVERLAPPED estrutura que foi especificada quando a operação sobreposta foi iniciada.
- lpcbTransfer
[out] Ponteiro para uma 32-bit variável que recebe o número de bytes que realmente foram transferidos por um envio ou operação de recebimento ou por WSAIoctl.
- fWait
[no] Sinalizador que especifica se a função deve esperar para a pendente sobreposto operação para completo. Se TRUE, a função NÃO retorna até que a operação seja concluída. FALSE e a operação se ainda estiver pendente, a função retorna FALSE e o WSAGetLastError função retorna WSA_IO_INCOMPLETE. O fWait parâmetro pode ser configurado para TRUE somente se a operação sobreposta selecionado a notificação de conclusão Event-Based.
- lpdwFlags
[out] Ponteiro para uma 32-bit variável que receberá um ou mais sinalizadores que complementam o status de conclusão. Se a operação sobreposta foi iniciada por WSARecv Ou WSARecvFrom, esse parâmetro irá conter o valor para o lpFlags parâmetro.
Return Value
Se não houver erro, essa função retorna TRUE. Isso significa que a operação sobreposta foi concluída com êxito e que o valor apontado pelo lpcbTransfer foi atualizado. Se esta função retornará FALSE, isso significa que tanto a operação sobreposta não foi concluída, a operação sobreposta concluída mas com erros, ou a conclusão da operação de sobreposta não pôde ser determinado status erros devido a em um ou mais parâmetros para WSAGetOverlappedResult. Na falha, o valor apontado pelo lpcbTransfer não será atualizada. Uso WSAGetLastError Para determinar a causar da falha (Uma das WSAGetOverlappedResult ou do associado sobreposto operaçã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. |
WSAENOTSOCK |
O descritor não é um Soquete. |
WSA_INVALID_HANDLE |
O hEvent parâmetro da WSAOVERLAPPED estrutura não contém um válido evento objeto identificador. |
WSA_INVALID_PARAMETER |
Um dos parâmetros é inaceitável. |
WSA_IO_INCOMPLETE |
O fWait parâmetro é FALSE e a operação E/S ainda não foi concluída. |
WSAEFAULT |
Um ou mais de lpOverlapped, lpcbTransfer, ou lpdwFlags argumentos não são um válido parte espaço de endereço o usuário. |
Remarks
Essa função relata os resultados a última operação sobreposta para o Soquete especificado. Essa função é passada o descritor Soquete e o WSAOVERLAPPED estrutura que foi especificada quando a função sobreposta foi chamado. Um pendente operação é indicada quando a função que iniciou a operação retorna FALSE e WSAGetLastError Retorna WSA_IO_PENDING. Quando uma operação E/S such as de WSARecv função está pendente, a função que iniciou a operação redefine o hEvent membro das WSAOVERLAPPED estrutura para o não sinalizado estado. Então, quando o pendente operação foi concluída, o sistema define o objeto evento para o sinalizado estado.
Se a pasta fWait parâmetro é TRUE, WSAGetOverlappedResult Determina se o pendente operação foi concluída por aguardando objeto o evento no sinalizado estado. Um cliente pode definido o fWait parâmetro para TRUE, mas somente se ele selecionado notificação de conclusão Event-Based quando a operação E/S foi solicitada. Se outra forma de notificação foi selecionada, o uso de hEvent parâmetro da WSAOVERLAPPED estrutura é diferente e configuração fWait Para TRUE causar resultados imprevisíveis.
Com a exceção de SIO_ROUTING_INTERFACE_CHANGE e SIO_ADDRESS_LIST_CHANGE, todos os drivers rede execução no kernel e chamado em Winsock APIs não é possível usar E/S sobrepostos. Para obter mais informações, consulte WSARecv, WSARecvFrom, WSASend, WSASendToe WSAIoctl.
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 |