Expand Minimize

KeRemoveEntryDeviceQueue routine

The KeRemoveEntryDeviceQueue routine returns whether the specified entry is in the device queue and removes it, if it was queued, from the device queue.

Syntax


BOOLEAN KeRemoveEntryDeviceQueue(
  _Inout_  PKDEVICE_QUEUE DeviceQueue,
  _Inout_  PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

Parameters

DeviceQueue [in, out]

Pointer to an initialized device queue object for which the caller provides the storage.

DeviceQueueEntry [in, out]

Pointer to the entry to be removed from the specified DeviceQueue.

Return value

If the DeviceQueueEntry is queued, it is removed and KeRemoveEntryDeviceQueue returns TRUE.

Remarks

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.

Requirements

Version

Available starting with Windows 2000.

Header

Wdm.h (include Wdm.h, Ntddk.h, or Ntifs.h)

Library

Ntoskrnl.lib

IRQL

<= DISPATCH_LEVEL

DDI compliance rules

IrqlKeDispatchLte, HwStorPortProhibitedDDIs

See also

KeInitializeDeviceQueue
KeInsertByKeyDeviceQueue
KeInsertDeviceQueue
KeRemoveByKeyDeviceQueue
KeRemoveDeviceQueue

 

 

Send comments about this topic to Microsoft

Show:
© 2014 Microsoft