IoStartNextPacketByKey-Funktion (wdm.h)
Die IoStartNextPacketByKey-Routine entfernt 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 die IRP entfernt 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
Keine
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 beim Aufrufen von IoStartPacket einen Zeiger auf eine Abbruchroutine übergeben hat, sollte er TRUE im Cancelable-Parameter übergeben. Wenn CancelableAUF TRUE festgelegt ist, verwendet der E/A-Manager die Abbruch-Drehsperre, um die Gerätewarteschlange und die aktuelle IRP zu schützen.
Treiber ohne StartIo-Routine können IoStartNextPacketByKey nicht aufrufen.
Aufrufer von IoStartNextPacketByKey müssen unter IRQL <= DISPATCH_LEVEL ausgeführt werden. Normalerweise wird diese Routine aus der DpcForIsr - oder CustomDpc-Routine eines Gerätetreibers aufgerufen, die beide mit IRQL = DISPATCH_LEVEL ausgeführt werden.
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 |