Estrutura OVERLAPPED (shobjidl.h)
Contém informações usadas na entrada/saída assíncrona (sobreposta) (E/S).
Sintaxe
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
Membros
Internal
Tipo: ULONG_PTR
Reservado para uso do sistema operacional. Esse membro, que especifica um status dependente do sistema, é válido quando a função IStreamAsync::OverlappedResult retorna sem definir as informações de erro estendidas como ERROR_IO_PENDING.
InternalHigh
Tipo: ULONG_PTR
Reservado para uso do sistema operacional. Esse membro, que especifica o comprimento dos dados transferidos, é válido quando a função IStreamAsync::OverlappedResult retorna TRUE.
Offset
Tipo: DWORD
Posição do arquivo na qual iniciar a transferência. A posição do arquivo é um deslocamento de bytes do início do arquivo. O processo de chamada deve definir esse membro antes de chamar a função IStreamAsync::ReadAsync ou IStreamAsync::WriteAsync .
OffsetHigh
Tipo: DWORD
Palavra de alta ordem da posição do arquivo na qual iniciar a transferência.
Pointer
Tipo: PVOID
Reservado.
hEvent
Tipo: identificador
Manipule para um evento definido como o estado sinalizado quando a operação tiver sido concluída. O processo de chamada deve definir esse membro como zero ou um identificador de evento válido antes de chamar quaisquer funções sobrepostas. Para criar um objeto de evento, use a função CreateEvent . Essa função retorna um identificador que pode ser usado para sincronizar solicitações simultâneas de E/S para um dispositivo.
Funções como IStreamAsync::ReadAsync e IStreamAsync::WriteAsync definem esse identificador como o estado não atribuído antes de iniciar uma operação de E/S. Quando a operação for concluída, o identificador será definido como o estado sinalizado.
Funções como IStreamAsync::OverlappedResult e as funções de espera redefinem eventos de redefinição automática para o estado não atribuído. Portanto, se um evento de redefinição automática for usado, o aplicativo poderá parar de responder se aguardar a conclusão da operação e chamar IStreamAsync::OverlappedResult.
Comentários
Essa estrutura sempre deve ser inicializada como zero antes de ser usada em uma chamada de função. Se não estiver, a função poderá falhar e retornar ERROR_INVALID_PARAMETER.
Use a função IStreamAsync::CancelIo para cancelar uma operação de E/S assíncrona.
Um erro comum é reutilizar uma estrutura OVERLAPPED antes que a operação assíncrona anterior tenha sido concluída. Use uma estrutura separada para cada solicitação. Crie um objeto de evento para cada thread que processa dados.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Windows Vista [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte | Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho | shobjidl.h |