KeRemoveEntryDeviceQueue function (wdm.h)
The KeRemoveEntryDeviceQueue routine returns whether the specified entry is in the device queue and removes it, if it was queued, from the device queue.
BOOLEAN KeRemoveEntryDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);
[in, out] DeviceQueue
Pointer to an initialized device queue object for which the caller provides the storage.
[in, out] DeviceQueueEntry
Pointer to the entry to be removed from the specified DeviceQueue.
If the DeviceQueueEntry is queued, it is removed and KeRemoveEntryDeviceQueue returns TRUE.
The IRQL is set to DISPATCH_LEVEL and the DeviceQueue spin lock is acquired.
If the specified DeviceQueueEntry is not in the queue, the IRP either is already being processed, or the IRP has been canceled. In this case, KeRemoveEntryDeviceQueue simply returns FALSE.
The specified DeviceQueue spin lock is released and IRQL is restored to its previous value.
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), IrqlKeDispatchLte(wdm) |