KeRemoveDeviceQueue routine
The KeRemoveDeviceQueue routine removes an entry from the head of a specified device queue.
Syntax
PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue( _Inout_ PKDEVICE_QUEUE DeviceQueue );
Parameters
- DeviceQueue [in, out]
-
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
|
Version | Available starting with Windows 2000. |
|---|---|
|
Header |
|
|
Library |
|
|
IRQL | DISPATCH_LEVEL |
|
DDI compliance rules | IrqlDispatch, HwStorPortProhibitedDDIs, IrqlDispatch(storport) |
See also
- KeInitializeDeviceQueue
- KeInsertByKeyDeviceQueue
- KeInsertDeviceQueue
- KeRemoveByKeyDeviceQueue
- KeRemoveEntryDeviceQueue
Send comments about this topic to Microsoft
Build date: 5/2/2013
