Partager via


Fonction IoStartPacket (ntifs.h)

La routine IoStartPacket appelle la routine StartIo du pilote avec l’IRP donnée ou insère l’IRP dans la file d’attente d’appareils associée à l’objet d’appareil donné si l’appareil est déjà occupé.

Syntaxe

void IoStartPacket(
  [in]           PDEVICE_OBJECT DeviceObject,
  [in]           PIRP           Irp,
  [in, optional] PULONG         Key,
  [in, optional] PDRIVER_CANCEL CancelFunction
);

Paramètres

[in] DeviceObject

Pointeur vers l’objet d’appareil cible pour l’IRP.

[in] Irp

Pointeur vers l’IRP à traiter.

[in, optional] Key

Pointeur vers une valeur qui détermine où insérer le paquet dans la file d’attente de l’appareil. Si cette valeur est égale à zéro, le paquet est inséré à la fin de la file d’attente de l’appareil.

[in, optional] CancelFunction

Spécifie le point d’entrée d’une routine Cancel fournie par le pilote.

Valeur de retour

None

Remarques

Si le pilote est déjà occupé à traiter une demande pour l’objet d’appareil cible, le paquet est mis en file d’attente dans la file d’attente de l’appareil. Sinon, cette routine appelle la routine StartIo du pilote avec l’IRP spécifié.

Si un pointeur CancelFunction non NULL est fourni, il est défini dans l’IRP de sorte que la routine Cancel du pilote est appelée si l’IRP est annulée avant son achèvement.

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

Les appelants d’IoStartPacket doivent s’exécuter sur IRQL <= DISPATCH_LEVEL. En règle générale, cette routine est appelée à partir de la routine dispatch d’un pilote de périphérique à l’adresse IRQL = PASSIVE_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 la section Notes)

Voir aussi

DEVICE_OBJECT

IoMarkIrpPending

IoSetCancelRoutine

IoStartNextPacket

IoStartNextPacketByKey