WSAGetOverlappedResult

Windows Mobile SupportedWindows Embedded CE Supported

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

See Also

Reference

WSARecv
WSARecvFrom
WSASend
WSASendTo
WSAIoctl