KeRemoveDeviceQueue 函数 (wdm.h)
KeRemoveDeviceQueue 例程从指定设备队列的头中删除条目。
语法
PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue
);
参数
[in, out] DeviceQueue
指向调用方为其提供存储的已初始化设备队列对象的指针。
返回值
如果设备队列为空但设置为忙碌状态,则 KeRemoveDeviceQueue 返回 NULL。
言论
获取指定的设备队列旋转锁,并检查设备队列的状态。 如果设备队列设置为忙碌状态并且 IRP 已排队,则此例程会取消排队,并返回指向 IRP 的指针。 当设备队列对象设置为忙碌状态但未排队时,对 KeRemoveDeviceQueue 的调用 会导致状态更改不忙。 将释放指定的设备队列的旋转锁。
当设备队列对象设置为非忙状态时,调用 KeRemoveDeviceQueue 是一个错误。
要求
要求 | 价值 |
---|---|
最低支持的客户端 | 从 Windows 2000 开始可用。 |
目标平台 | 普遍 |
标头 | wdm.h (包括 Wdm.h、Ntddk.h、Ntifs.h) |
库 | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
DDI 符合性规则 | HwStorPortProhibitedDDIIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm) |