GetOverlappedResult

指定したファイル、名前付きパイプ、または通信デバイスに対するオーバーラップ処理の結果を取得する。

GetOverlappedResult hFile, lpOverlapped, lpNumberOfBytesTransferred, bWait

hFile : [intptr] ファイル、名前付きパイプ、または通信デバイスのハンドル。これは以下のいずれかの関数の呼び出しによってオーバーラップ処理を開始した際に指定したものと同じハンドルである: - [ReadFile](../fileapi/nf-fileapi-readfile.md) - [WriteFile](../fileapi/nf-fileapi-writefile.md) - [ConnectNamedPipe](../namedpipeapi/nf-namedpipeapi-connectnamedpipe.md) - [TransactNamedPipe](../namedpipeapi/nf-namedpipeapi-transactnamedpipe.md) - [DeviceIoControl](./nf-ioapiset-deviceiocontrol.md) - [WaitCommEvent](../winbase/nf-winbase-waitcommevent.md) - [ReadDirectoryChangesW](../winbase/nf-winbase-readdirectorychangesw.md) - [LockFileEx](../fileapi/nf-fileapi-lockfileex.md) - [ReadDirectoryChangesW](../winbase/nf-winbase-readdirectorychangesw.md)
lpOverlapped : [var] オーバーラップ処理の開始時に指定された OVERLAPPED 構造体へのポインタ。
lpNumberOfBytesTransferred : [var] 読み取りまたは書き込み処理で実際に転送されたバイト数を受け取る変数へのポインタ。TransactNamedPipe 処理の場合、これはパイプから読み取られたバイト数である。DeviceIoControl 処理の場合、これはデバイスドライバから返された出力データのバイト数である。ConnectNamedPipe または WaitCommEvent 処理の場合、この値は未定義である。
bWait : [int] このパラメータが TRUE で、lpOverlapped 構造体の Internal メンバが STATUS_PENDING の場合、関数は処理が完了するまで戻らない。FALSE で処理がまだ保留中の場合、関数は FALSE を返し、GetLastError は ERROR_IO_INCOMPLETE を返す。

(プラグイン / モジュール : kernel32.dll)

解説

指定したファイル、名前付きパイプ、または通信デバイスに対するオーバーラップ処理の結果を取得する。

[戻り値]
関数が成功した場合、戻り値は 0 以外。関数が失敗した場合、戻り値は 0。拡張エラー情報を取得するには GetLastError を呼ぶ。

[備考]
GetOverlappedResult 関数によって報告される結果は、指定された OVERLAPPED
構造体が指定された、指定ハンドルの最後のオーバーラップ処理のもので、その処理結果が保留中のものである。処理を開始した関数が FALSE
を返し GetLastError が ERROR_IO_PENDING を返すと、保留中の処理であることが示される。I/O
処理が保留中のとき、処理を開始した関数は OVERLAPPED 構造体の hEvent
メンバを非シグナル状態にリセットする。その後、保留中の処理が完了すると、システムはイベントオブジェクトをシグナル状態に設定する。bWait
パラメータが TRUE の場合、GetOverlappedResult
はイベントオブジェクトがシグナル状態になるのを待つことで保留中の処理が完了したかどうかを判定する。OVERLAPPED 構造体の
hEvent メンバが NULL の場合、システムは hFile
ハンドルの状態を使用して処理完了をシグナル化する。この目的でファイル、名前付きパイプ、通信デバイスのハンドルを使用することは推奨されない。同じファイル、名前付きパイプ、通信デバイスに対して複数の同時オーバーラップ処理が行われたときに混乱が生じうるため、イベントオブジェクトを使用する方が安全である。この状況では、どの処理がオブジェクトの状態をシグナル化したのかを知る方法がない。

情報

プラグイン / モジュールkernel32.dll
バージョン1.0
作成日2026/04/16
著作者IronHSP / CsWin32 bridge
URLhttps://github.com/inovia/IronHSP
備考Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。
タイプ拡張命令
グループWin32API
対応環境
  • Windows 版 HSP
hs ファイルhsphelp\win32_kernel32_gen2.hs