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 的调用方。 拾取数据包时,必须再次调用此函数来重新建立关联。 如果等待完成数据包已用于关联,则返回错误。

此函数没有关联的导入库或头文件;必须使用 LoadLibraryGetProcAddress 函数调用它。 从 ntdll.dll 导出 API。

要求

要求
DLL ntdll.dll