KeRemoveDeviceQueue 函数 (wdm.h)

KeRemoveDeviceQueue 例程从指定设备队列的头中删除条目。

语法

PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(
  [in, out] PKDEVICE_QUEUE DeviceQueue
);

参数

[in, out] DeviceQueue

指向调用方为其提供存储的已初始化设备队列对象的指针。

返回值

如果设备队列为空,但设置为忙碌状态, 则 KeRemoveDeviceQueue 返回 NULL

注解

获取指定的设备队列旋转锁并检查设备队列的状态。 如果设备队列设置为繁忙状态并且 IRP 已排队,则此例程将取消排队条目并返回指向 IRP 的指针。 当设备队列对象设置为忙碌状态但未排队的 IRP 时,调用 KeRemoveDeviceQueue 会导致状态更改为不忙。 指定设备队列的旋转锁将释放。

当设备队列对象设置为非繁忙状态时,调用 KeRemoveDeviceQueue 是错误的。

要求

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

另请参阅

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeRemoveByKeyDeviceQueue

KeRemoveEntryDeviceQueue