IoStartNextPacketByKey-Funktion (ntifs.h)
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 Cancelable-Parameter dieser Routine übergeben. Wenn cancelable WAHR ist, verwendet der E/A-Manager die Drehungssperre zum Schützen 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- | Windows 2000 |
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | <= DISPATCH_LEVEL |