Estructura SUPERPUESTA (shobjidl.h)
Contiene información utilizada en la entrada/salida asincrónica (superpuesta) (E/S).
Sintaxis
typedef struct _OVERLAPPED {
ULONG_PTR Internal;
ULONG_PTR InternalHigh;
union {
struct {
DWORD Offset;
DWORD OffsetHigh;
};
PVOID Pointer;
};
HANDLE hEvent;
} OVERLAPPED, *LPOVERLAPPED;
Miembros
Internal
Tipo: ULONG_PTR
Reservado para el uso del sistema operativo. Este miembro, que especifica un estado dependiente del sistema, es válido cuando la función IStreamAsync::OverlappedResult devuelve sin establecer la información de error extendida en ERROR_IO_PENDING.
InternalHigh
Tipo: ULONG_PTR
Reservado para el uso del sistema operativo. Este miembro, que especifica la longitud de los datos transferidos, es válido cuando la función IStreamAsync::OverlappedResult devuelve TRUE.
Offset
Tipo: DWORD
Posición del archivo en la que se va a iniciar la transferencia. La posición de archivo es el desplazamiento de bytes desde el inicio del archivo. El proceso de llamada debe establecer este miembro antes de llamar a la función IStreamAsync::ReadAsync o IStreamAsync::WriteAsync .
OffsetHigh
Tipo: DWORD
Palabra de orden superior de la posición del archivo en la que se va a iniciar la transferencia.
Pointer
Tipo: PVOID
Reservado.
hEvent
Tipo: identificador
Controlar en un evento que se establece en el estado señalado cuando se ha completado la operación. El proceso de llamada debe establecer este miembro en cero o en un identificador de eventos válido antes de llamar a las funciones superpuestas. Para crear un objeto de evento, use la función CreateEvent . Esta función devuelve un identificador que se puede usar para sincronizar solicitudes de E/S simultáneas para un dispositivo.
Funciones como IStreamAsync::ReadAsync e IStreamAsync::WriteAsync establecen este identificador en el estado no asignado antes de iniciar una operación de E/S. Una vez completada la operación, el identificador se establece en el estado señalado.
Funciones como IStreamAsync::OverlappedResult y las funciones de espera restablecen los eventos de restablecimiento automático al estado no asignado. Por lo tanto, si se usa un evento de restablecimiento automático, la aplicación puede dejar de responder si espera a que se complete la operación y, a continuación, llame a IStreamAsync::OverlappedResult.
Comentarios
Esta estructura siempre debe inicializarse en cero antes de usarse en una llamada de función. Si no es así, la función puede producir un error y devolver ERROR_INVALID_PARAMETER.
Use la función IStreamAsync::CancelIo para cancelar una operación de E/S asincrónica.
Un error común es reutilizar una estructura SUPERPUESTA antes de que se haya completado la operación asincrónica anterior. Use una estructura independiente para cada solicitud. Cree un objeto de evento para cada subproceso que procese los datos.
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Encabezado | shobjidl.h |