OVERLAPPED

非同期の入出力(I/O)操作で使用される情報を格納します。

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

メンバ

Internal

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

InternalHigh

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

Offset

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

OffsetHigh

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

hEvent

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

WriteFile関数やReadFile関数などの関数は、入出力操作を開始する前にイベントオブジェクトをノンシグナル状態にセットし、操作が完了したときにシグナル状態にセットします。

対応情報

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