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 IoStartNextPacketByKey Routine dequeues das nächste E/A-Anforderungspaket aus der zugeordneten Gerätewarteschlange des angegebenen Geräteobjekts gemäß einem angegebenen Sortierschlüsselwert und ruft die StartIo Routine des Treibers mit diesem IRP auf.
Syntax
VOID IoStartNextPacketByKey(
[in] PDEVICE_OBJECT DeviceObject,
[in] BOOLEAN Cancelable,
[in] ULONG Key
);
Parameter
[in] DeviceObject
Zeiger auf das Geräteobjekt, für das das IRP dequeuiert werden soll.
[in] Cancelable
Gibt an, ob IRPs in der Gerätewarteschlange abgebrochen werden können.
[in] Key
Gibt den Sortierschlüssel an, der bestimmt, welcher Eintrag aus der Warteschlange entfernt werden soll.
Rückgabewert
Nichts
Bemerkungen
Wenn sich derzeit keine IRPs in der Gerätewarteschlange für das Zielgerätobjekt befinden, gibt diese Routine einfach die Steuerung an den Aufrufer zurück.
Wenn der Treiber einen Zeiger an eine Cancel-Routine übergeben hat, wenn er IoStartPacket-aufgerufen hat, sollte er TRUE- im parameter Cancelable übergeben. Wenn cancelableTRUEist, verwendet der E/A-Manager die Drehungssperre zum Schutz der Gerätewarteschlange und des aktuellen IRP.
Treiber, die nicht über eine StartIo Routine verfügen, können nicht IoStartNextPacketByKeyaufrufen.
Aufrufer von IoStartNextPacketByKey- müssen unter IRQL-<= DISPATCH_LEVEL ausgeführt werden. In der Regel wird diese Routine von der DpcForIsr oder CustomDpc Routine aufgerufen, die beide bei IRQL = DISPATCH_LEVEL ausgeführt werden.
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 |