Fonction IoStartPacket (ntifs.h)
L'IoStartPacket routine appelle la routine StartIo du pilote avec l’IRP donné ou insère l’IRP dans la file d’attente de l’appareil 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. S’il s’agit de 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 Annuler fournie par le pilote.
Valeur de retour
Aucun
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. Dans le cas contraire, cette routine appelle la routine StartIo du pilote avec le protocole IRP spécifié.
Si un pointeur non NULL CancelFunction est fourni, il est défini dans l’IRP afin que la routine d’annulation de du pilote soit appelée si l’IRP est annulé avant sa fin.
Les pilotes qui n’ont pas de routine StartIo ne peuvent pas appeler IoStartPacket.
Les appelants de IoStartPacket doivent s’exécuter à l'<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 à IRQL = PASSIVE_LEVEL.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows 2000 |
plateforme cible | Universel |
d’en-tête | ntifs.h (include Wdm.h, Ntddk.h, Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= DISPATCH_LEVEL (voir la section Remarques) |