ターゲット オブジェクトの待機完了の関連付けを作成します。
構文
NTSTATUS NtAssociateWaitCompletionPacket (
_In_ HANDLE WaitCompletionPacketHandle,
_In_ HANDLE IoCompletionHandle,
_In_ HANDLE TargetObjectHandle,
_In_opt_ PVOID KeyContext,
_In_opt_ PVOID ApcContext,
_In_ NTSTATUS IoStatus,
_In_ ULONG_PTR IoStatusInformation,
_Out_opt_ PBOOLEAN AlreadySignaled
)
パラメーター
WaitCompletionPacketHandle [in]
関連付けを記述する待機完了パケットへのハンドル。 このオブジェクトは使用できません。
IoCompletionHandle [in]
オブジェクトがシグナル状態になったときに通知を受け取る IO 完了オブジェクトへのハンドル。
TargetObjectHandle [in]
通知を受信する待機可能オブジェクトへのハンドル。
KeyContext [in]
NtRemoveIoCompletion の呼び出し中に返されるキー コンテキストを提供します。
ApcContext [in]
NtRemoveIoCompletion の呼び出し中に返される apc コンテキスト。
IoStatus [in]
NtRemoveIoCompletion の呼び出し中に返される IoStatus-Status> データ。
IoStatusInformation [in]
NtRemoveIoCompletion の呼び出し中に返される IoStatus-Information> データ。
AlreadySignaled [out]
この関数が成功したときに、関連付けの時点でターゲット オブジェクトが既に通知されたかどうかを示すブール値変数へのポインター (省略可能)。
戻り値
NTSTATUS コード。 詳細については、「 NTSTATUS 値の使用」を参照してください。
解説
オブジェクトが通知されると、指定された完了ポートにパケットがキューに入れられ、指定された値が NtRemoveIoCompletion の呼び出し元に伝達されます。 パケットが取得されると、この関数を再度呼び出して関連付けを再確立する必要があります。 待機完了パケットが関連付けに既に使用されている場合は、エラーが返されます。
この関数には、インポート ライブラリまたはヘッダー ファイルが関連付けされません。 LoadLibrary 関数と GetProcAddress 関数を使用して呼び出す必要があります。 API は、ntdll.dll からエクスポートされます。
必要条件
| 要件 | 値 |
|---|---|
| [DLL] | ntdll.dll |