Partager via


Fonction IoStartNextPacketByKey (ntifs.h)

La routine IoStartNextPacketByKey supprime le paquet de requête d’E/S suivant de la file d’attente d’appareils associée à l’objet d’appareil spécifié en fonction d’une valeur de clé de tri spécifiée et appelle la routine StartIo du pilote avec cette IRP.

Syntaxe

void IoStartNextPacketByKey(
  [in] PDEVICE_OBJECT DeviceObject,
  [in] BOOLEAN        Cancelable,
  [in] ULONG          Key
);

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil pour lequel l’IRP doit être mis en file d’attente.

[in] Cancelable

Spécifie si les IRP dans la file d’attente d’appareils peuvent être annulés.

[in] Key

Spécifie la clé de tri qui détermine l’entrée à supprimer de la file d’attente.

Valeur de retour

None

Remarques

Si aucun IRP n’est actuellement dans la file d’attente de l’appareil pour l’objet d’appareil cible, cette routine retourne simplement le contrôle à l’appelant.

Si le pilote a passé un pointeur vers une routine d’annulation lorsqu’il a appelé IoStartPacket, il doit passer TRUE dans le paramètre Cancelable de cette routine. Si Cancelable a la valeur TRUE, le gestionnaire d’E/S utilise le verrouillage de rotation d’annulation pour protéger la file d’attente de l’appareil et l’IRP actuel.

Les pilotes qui n’ont pas de routine StartIo ne peuvent pas appeler IoStartNextPacketByKey.

Les appelants d’IoStartNextPacketByKey doivent s’exécuter sur IRQL <= DISPATCH_LEVEL. En règle générale, cette routine est appelée à partir de la routine DpcForIsr ou CustomDpc d’un pilote de périphérique, qui sont toutes deux exécutées sur IRQL = DISPATCH_LEVEL.

Configuration requise

Condition requise Valeur
Client minimal pris en charge Windows 2000
Plateforme cible Universal
En-tête ntifs.h (inclure Wdm.h, Ntddk.h, Ntifs.h)
Bibliothèque NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

Voir aussi

DEVICE_OBJECT

IoStartNextPacket

IoStartPacket