NtAssociateWaitCompletionPacket 関数

ターゲット オブジェクトの待機完了の関連付けを作成します。

構文

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