KeInsertDeviceQueue-Funktion (wdm.h)

Die KeInsertDeviceQueue-Routine ruft die Drehsperre für das angegebene Gerätewarteschlangenobjekt ab, und wenn die Gerätewarteschlange auf den Status "Beschäftigt" festgelegt ist, wird der angegebene Eintrag in die Warteschlange eingereiht.

Syntax

BOOLEAN KeInsertDeviceQueue(
  [in, out] PKDEVICE_QUEUE       DeviceQueue,
  [in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry
);

Parameter

[in, out] DeviceQueue

Zeiger auf ein Steuerelementobjekt vom Typ Gerätewarteschlange, für das der Aufrufer den Speicher bereitstellt.

[in, out] DeviceQueueEntry

Zeiger auf den Gerätewarteschlangeneintrag, der eingefügt werden soll.

Rückgabewert

Wenn die Gerätewarteschlange leer ist, wird FALSE zurückgegeben, und deviceQueueEntry wird nicht in die Gerätewarteschlange eingefügt.

Hinweise

Wenn die Gerätewarteschlange auf den Status "Ausgelastet" festgelegt ist, wird die angegebene DeviceQueueEntry am Ende der Gerätewarteschlange eingefügt, und die Spinsperre der Gerätewarteschlange wird aufgehoben.

Wenn KeInsertDeviceQueueFALSE zurückgibt, wurde der Eintrag nicht in die Warteschlange gestellt, und der Aufrufer muss mit der Verarbeitung des IRP beginnen. Ein Aufruf von KeInsertDeviceQueue oder KeInsertByKeyDeviceQueue , wenn die Warteschlange leer ist, bewirkt, dass die Gerätewarteschlange von einem Nicht-Beschäftigt-Zustand in einen Beschäftigt-Zustand wechselt.

Diese Routine gilt für Code, der eine E/A-Anforderung an einen Gerätetreiber in die Warteschlange stellt.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Verfügbar ab Windows 2000.
Zielplattform Universell
Header wdm.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL DISPATCH_LEVEL
DDI-Complianceregeln HwStorPortProhibitedDIs(storport), IrqlDispatch(storport), IrqlDispatch(storport), IrqlDispatch(wdm), MarkingQueuedIrps(wdm)

Weitere Informationen

KeInitializeDeviceQueue

KeInsertByKeyDeviceQueue

KeRemoveDeviceQueue

KeRemoveEntryDeviceQueue