Freigeben über


IoStartNextPacketByKey-Funktion (ntifs.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 dieser Routine übergeben. Wenn Cancelable AUF 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) Windows 2000
Zielplattform Universell
Header ntifs.h (einschließlich Wdm.h, Ntddk.h, Ntifs.h)
Bibliothek NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Weitere Informationen

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket