指定した I/O 完了ポートから I/O 完了パケットをデキューしようとする。
GetQueuedCompletionStatus CompletionPort, lpNumberOfBytesTransferred, lpCompletionKey, lpOverlapped, dwMilliseconds
CompletionPort : [intptr] 完了ポートのハンドル。完了ポートを作成するには CreateIoCompletionPort 関数を使用する。 lpNumberOfBytesTransferred : [var] 完了した I/O 処理で転送されたバイト数を受け取る変数へのポインタ。 lpCompletionKey : [var] I/O 処理が完了したファイルハンドルに関連付けられた完了キー値を受け取る変数へのポインタ。完了キーは CreateIoCompletionPort の呼び出しで指定されたファイルごとのキーである。 lpOverlapped : [var] 完了した I/O 処理が開始されたときに指定された OVERLAPPED 構造体のアドレスを受け取る変数へのポインタ。完了ポートに関連付けられたファイルハンドルと有効な OVERLAPPED 構造体を関数に渡しても、アプリケーションは完了ポート通知を防ぐことができる。これは OVERLAPPED 構造体の hEvent メンバに有効なイベントハンドルを指定し、その下位ビットを設定することで行う。下位ビットが設定された有効なイベントハンドルは、オーバーラップ I/O の完了が完了パケットを完了ポートにエンキューするのを防ぐ。 dwMilliseconds : [int] 呼び出し側が完了パケットが完了ポートに現れるのを待つミリ秒数。指定時間内に完了パケットが現れない場合、関数はタイムアウトし、FALSE を返し、*lpOverlapped を NULL に設定する。dwMilliseconds が INFINITE の場合、関数はタイムアウトしない。dwMilliseconds が 0 でデキューする I/O 処理がない場合、関数はすぐにタイムアウトする。Windows XP、Windows Server 2003、Windows Vista、Windows 7、Windows Server 2008、Windows Server 2008 R2: dwMilliseconds 値は低電力状態で費やされた時間を含む。たとえば、コンピュータがスリープ中もタイムアウトはカウントダウンを続ける。Windows 8、Windows Server 2012、Windows 8.1、Windows Server 2012 R2、Windows 10、Windows Server 2016: dwMilliseconds 値は低電力状態で費やされた時間を含まない。たとえば、コンピュータがスリープ中はタイムアウトはカウントダウンを続けない。
(プラグイン / モジュール : kernel32.dll)
指定した I/O 完了ポートから I/O 完了パケットをデキューしようとする。 [戻り値] 成功した場合は 0 以外 (TRUE)、それ以外の場合は 0 (FALSE) を返す。拡張エラー情報を取得するには GetLastError を呼ぶ。詳細は備考セクションを参照。 [備考] この関数は、スレッドを指定した完了ポートに関連付ける。スレッドは多くとも 1 つの完了ポートに関連付けられる。GetQueuedCompletionStatus の呼び出しが、関連付けられた完了ポートのハンドルが呼び出し中に閉じられたために失敗した場合、関数は FALSE を返し、*lpOverlapped は NULL になり、GetLastError は ERROR_ABANDONED_WAIT_0 を返す。Windows Server 2003 および Windows XP: 呼び出し中に完了ポートのハンドルを閉じても、前述の動作は発生しない。関数は、ポートからエントリが削除されるまで、または INFINITE 以外の値が指定されている場合はタイムアウトが発生するまで待ち続ける。GetQueuedCompletionStatus 関数が成功した場合、成功した I/O 処理の完了パケットを完了ポートからデキューし、以下のパラメータが指す変数に情報を格納している: lpNumberOfBytes、lpCompletionKey、lpOverlapped。失敗した場合(戻り値が FALSE)、それらの同じパラメータには以下のような特定の値の組み合わせが含まれる場合がある。 (以下省略)
| プラグイン / モジュール | kernel32.dll |
| バージョン | 1.0 |
| 作成日 | 2026/04/16 |
| 著作者 | IronHSP / CsWin32 bridge |
| URL | https://github.com/inovia/IronHSP |
| 備考 | Win32 API の kernel32.dll 関数群。CsWin32 + win32metadata から自動生成。
hsp3net 専用 (intptr / NSTRUCT / wstr を使用)。 |
| タイプ | 拡張命令 |
| グループ | Win32API |
| 対応環境 |
|
| hs ファイル | hsphelp\win32_kernel32_gen2.hs |