Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Die KeInsertByKeyDeviceQueue Routine erwirbt die Drehsperre für die angegebene DeviceQueue und stellt einen Eintrag gemäß dem angegebenen Sortierschlüsselwert in die Warteschlange ein, wenn die Gerätewarteschlange auf einen Beschäftigt-Zustand festgelegt ist.
Syntax
BOOLEAN KeInsertByKeyDeviceQueue(
[in, out] PKDEVICE_QUEUE DeviceQueue,
[in, out] PKDEVICE_QUEUE_ENTRY DeviceQueueEntry,
[in] ULONG SortKey
);
Parameter
[in, out] DeviceQueue
Zeiger auf ein Steuerelementobjekt des Gerätewarteschlangentyps, für das der Aufrufer den Speicher bereitstellt.
[in, out] DeviceQueueEntry
Zeiger auf den Gerätewarteschlangeneintrag, der gemäß dem spezifischen Schlüsselwert in die Gerätewarteschlange eingefügt werden soll.
[in] SortKey
Gibt den Sortierschlüsselwert an, der die Position in der Gerätewarteschlange bestimmt, in die der Eintrag eingefügt werden soll.
Rückgabewert
Wenn die Gerätewarteschlange leer ist, wird FALSE- zurückgegeben, was bedeutet, dass die DeviceQueueEntry- nicht in die Gerätewarteschlange eingefügt wird.
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, wird das durch die DeviceQueueEntry- angegebene IRP entsprechend dem Sortierschlüsselwert in die Gerätewarteschlange eingefügt, und die Drehsperre der Gerätewarteschlange wird losgelassen.
Der neue Eintrag wird in der Gerätewarteschlange nach einträgen in der Warteschlange positioniert, deren Sortierschlüsselwerte kleiner oder gleich dem Sortierschlüsselwert sind und allen Einträgen mit höheren Sortierschlüsselwerten vorangestellt werden.
Wenn KeInsertByKeyDeviceQueueFALSE-zurückgibt, muss der Aufrufer 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 Beschäftigt-Zustand wechselt.
Diese Routine richtet sich an Code, der eine E/A-Anforderung an einen Gerätetreiber in die Warteschlange stellt.
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), MarkingQueuedIrps(wdm) |