Note
Access to this page requires authorization. You can try signing in or changing directories.
Access to this page requires authorization. You can try changing directories.
The KeRemoveDeviceQueue routine removes an entry from the head of a specified device queue.
Syntax
PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue
);
Parameters
[in, out] DeviceQueue
Pointer to an initialized device queue object for which the caller provides the storage.
Return value
If the device queue is empty but is set to a busy state, KeRemoveDeviceQueue returns NULL.
Remarks
The specified device queue spin lock is acquired and the state of the device queue is checked. If the device queue is set to a busy state and an IRP is queued, this routine dequeues the entry and returns a pointer to the IRP. A call to KeRemoveDeviceQueue when the device queue object is set to a busy state but no IRPs are queued causes a state change to not-busy. The specified device queue's spin lock is released.
It is an error to call KeRemoveDeviceQueue when the device queue object is set to a not-busy state.
Requirements
Requirement | Value |
---|---|
Minimum supported client | Available starting with Windows 2000. |
Target Platform | Universal |
Header | wdm.h (include Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | DISPATCH_LEVEL |
DDI compliance rules | HwStorPortProhibitedDDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm) |