Freigeben über


KeRemoveDeviceQueue-Funktion (wdm.h)

Die KeRemoveDeviceQueue Routine entfernt einen Eintrag aus dem Kopf einer angegebenen Gerätewarteschlange.

Syntax

PKDEVICE_QUEUE_ENTRY KeRemoveDeviceQueue(
  [in, out] PKDEVICE_QUEUE DeviceQueue
);

Parameter

[in, out] DeviceQueue

Zeiger auf ein initialisiertes Gerätewarteschlangenobjekt, für das der Aufrufer den Speicher bereitstellt.

Rückgabewert

Wenn die Gerätewarteschlange leer ist, aber auf einen Beschäftigt-Zustand festgelegt ist, gibt KeRemoveDeviceQueueNULL-zurück.

Bemerkungen

Die angegebene Drehsperre der Gerätewarteschlange wird abgerufen, und der Zustand der Gerätewarteschlange wird überprüft. Wenn die Gerätewarteschlange auf einen Beschäftigt-Zustand festgelegt ist und ein IRP in die Warteschlange eingereiht wird, wird der Eintrag durch diese Routine dequeuesiert und ein Zeiger auf das IRP zurückgegeben. Ein Aufruf von KeRemoveDeviceQueue, wenn das Gerätewarteschlangenobjekt auf einen Beschäftigt-Zustand festgelegt ist, aber keine IRPs in die Warteschlange gestellt werden, führt zu einer Zustandsänderung, die nicht ausgelastet ist. Die Drehsperre der angegebenen Gerätewarteschlange wird freigegeben.

Es ist ein Fehler, KeRemoveDeviceQueue aufzurufen, wenn das Gerätewarteschlangenobjekt auf einen nicht ausgelasteten Zustand festgelegt ist.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Ab Windows 2000 verfügbar.
Zielplattform- Universal
Header- wdm.h (include Wdm.h, Ntddk.h, Ntifs.h)
Library NtosKrnl.lib
DLL- NtosKrnl.exe
IRQL- DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm)

Siehe auch

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeInsertDeviceQueue

KeRemoveByKeyDeviceQueue

KeRemoveEntryDeviceQueue