Compartir a través de


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