KeInsertDeviceQueue-Funktion (wdm.h)

Die KeInsertDeviceQueue-Routine erwirbt die Spin-Sperre für das angegebene Gerätewarteschleifenobjekt, und wenn die Gerätewarteschlange auf einen beschäftigten Zustand festgelegt ist, wird der angegebene Eintrag in die Warteschlange gestellt.

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 die DeviceQueueEntry wird nicht in die Gerätewarteschlange eingefügt.

Bemerkungen

Wenn die Gerätewarteschleife auf einen beschäftigten Zustand festgelegt ist, wird das angegebene DeviceQueueEntry am Ende der Gerätewarteschlange eingefügt, und die Drehsperre der Gerätewarteschleife wird freigegeben.

Wenn KeInsertDeviceQueueFALSCH 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 ausgelasteten Zustand in einen gebuchten Zustand wechselt.

Diese Routine richtet sich an Code, der eine E/A-Anforderung an einen Gerätetreiber in die Warteschlange stellt.

Anforderungen

   
Unterstützte Mindestversion (Client) Ab Windows 2000 verfügbar.
Zielplattform Universell
Header wdm.h (include 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