Freigeben über


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

Siehe auch

DEVICE_OBJECT

IoStartNextPacket-

IoStartPacket-