OVERLAPPED

非同期 I/O 操作で使用される情報を格納します。

typedef struct _OVERLAPPED { 
    ULONG_PTR  Internal; 
    ULONG_PTR  InternalHigh; 
    DWORD      Offset; 
    DWORD      OffsetHigh; 
    HANDLE     hEvent; 
} OVERLAPPED;

メンバ

Internal

オペレーティングシステムによる使用のために予約されています。このメンバは GetOverlappedResult 関数から ERROR_IO_PENDING 拡張エラーがセットされることなく戻ったときに有効で、システム依存の状態が格納されます。

InternalHigh

オペレーティングシステムによる使用のために予約されています。このメンバは GetOverlappedResult 関数が TRUE を返したときに有効で、転送されたデータの長さが格納されます。

Offset

OffsetHigh メンバと合わせて、転送を開始するファイルポインタの位置を指定します。バイト単位で示されたファイルの先頭からのオフセットの下位32ビットを指定します。 WriteFile 関数や ReadFile 関数を呼び出す前にこのメンバをセットします。名前付きパイプでの書き込み・読み取りやコミュニケーションデバイスとの通信のときはこのメンバは無視されます。この場合は 0 にします。

OffsetHigh

バイト単位で示されたファイルの先頭からのオフセットの上位32ビットを指定します。名前付きパイプでの書き込み・読み取りやコミュニケーションデバイスとの通信のときはこのメンバは無視されます。この場合は 0 にします。

hEvent

作業が完了したときにシグナル上体にセットされるイベントオブジェクトのハンドルを指定します。呼び出しプロセスは、非同期関数を呼び出す前に、このメンバに 0 または有効なイベントオブジェクトのハンドルを格納しておかなければなりません。イベントオブジェクトを作成するには、 CreateEvent 関数を使います。

WriteFile 関数、 ReadFile 関数、 ConnectNamedPipe 関数、 TransactNamedPipe 関数は転送を開始する前にイベントオブジェクトをノンシグナル状態にセットし、転送が完了したときにシグナル状態にセットします。これらの関数を呼び出す前にこのメンバをセットします。

対応情報

Windows 95 以降 / Windows NT 3.1 以降

変数との対応

HSP 変数 メンバ
メンバ名 オフセット サイズ
ovlp.0 Internal 0 4
ovlp.1 InternalHigh 4 4
ovlp.2 Offset 8 4
ovlp.3 OffsetHigh 12 4
ovlp.4 hEvent 16 4