KeRemoveQueueDpc 函数 (wdm.h)

KeRemoveQueueDpc 例程从系统 DPC 队列中删除指定的 DPC 对象。

语法

BOOLEAN KeRemoveQueueDpc(
  [in, out] PRKDPC Dpc
);

参数

[in, out] Dpc

指向已初始化的 DPC 对象的指针,该对象由对 KeInsertQueueDpc 例程的先前调用排队。

返回值

如果 DPC 对象在 DPC 队列中,KeRemoveQueueDpc 返回 TRUE。 如果指定的 DPC 对象当前不在 DPC 队列中,则不执行任何操作,并且返回 FALSE

注解

如果指定的 DPC 对象当前已排队,则会将其从队列中删除,从而取消对关联的 DPC 例程的调用。

从具有 Service Pack 1 的 Windows Vista (SP1) 和 Windows Server 2008 开始,返回值 TRUE 始终表示 KeRemoveQueueDpc 在 DPC 例程开始运行之前已成功从 DPC 队列中删除 DPC 对象。 在早期版本的 Windows 中,即使 KeRemoveQueueDpc 返回 TRUE,DPC 例程也可能偶尔运行。 在这些早期版本的 Windows 中,不能容忍 TRUE 返回值中的歧义的驱动程序应以相同的方式处理 TRUEFALSE 的返回值。

要求

要求
最低受支持的客户端 从 Windows 2000 开始可用。
目标平台 通用
标头 wdm.h(包括 Wdm.h、Ntddk.h、Ntifs.h)
Library NtosKrnl.lib
DLL NtosKrnl.exe
IRQL 任何级别
DDI 符合性规则 HwStorPortProhibitedDDI (storport)

另请参阅

KeInitializeDpc

KeInsertQueueDpc