Fonction IofCallDriver (wdm.h)
Attention
Appelez Plutôt IoCallDriver .
Envoie un IRP au pilote associé à un objet de périphérique spécifié.
Syntaxe
NTSTATUS IofCallDriver(
PDEVICE_OBJECT DeviceObject,
__drv_aliasesMem PIRP Irp
);
Paramètres
DeviceObject
Pointeur vers un objet d’appareil, représentant l’appareil cible pour l’opération d’E/S demandée.
Irp
Pointeur vers l’IRP.
Valeur retournée
Retourne une valeur NTSTATUS appropriée.
Remarques
Avant d’appeler IoCallDriver, le pilote appelant doit configurer l’emplacement de la pile d’E/S dans l’IRP du pilote cible. Pour plus d’informations, consultez Passage d’IRPs dans la pile des pilotes.
IoCallDriver affecte le paramètre d’entrée DeviceObject au membre DeviceObject de la structure IO_STACK_LOCATION pour le pilote appelé.
Un IRP passé dans un appel à IoCallDriver devient inaccessible au pilote de niveau supérieur, sauf si le pilote de niveau supérieur a appelé IoSetCompletionRoutine pour configurer une routine IoCompletion pour l’IRP. Si c’est le cas, l’entrée IRP de la routine IoCompletion a son bloc d’E/S status défini par les pilotes inférieurs, et tous les emplacements de pile d’E/S de niveau inférieur sont remplis avec des zéros.
Les pilotes pour Windows Server 2003, Windows XP et Windows 2000 doivent utiliser PoCallDriver plutôt qu’IoCallDriver pour passer les irps d’alimentation (IRP_MJ_POWER).
Pour plus d’informations, consultez Appel d’IoCallDriver et Appel de PoCallDriver.
Configuration requise
Condition requise | Valeur |
---|---|
En-tête | wdm.h (inclure Wdm.h, Ntddk.h, Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | IRQL <= DISPATCH_LEVEL |
Règles de conformité DDI | CompleteRequestStatusCheck, CompletionRoutineRegistered, DeleteDevice, ForwardedAtBadIrql, ForwardedAtBadIrqlAllocate, ForwardedAtBadIrqlFsdAsync, ForwardedAtBadIrqlFsdSync, HwStorPortProhibitedDDIs(storport), IoAllocateForward, IoAllocateIrpSignalEventInCompletionTimeout, IoBuildDeviceControlWait, IoBuildDeviceControlWaitTimeout, IoBuildFsdForward, IoBuildSynchronousFsdRequestWait, IoBuildSynchronousFsdRequestWaitTimeout, IoSetCompletionRoutineExCheck, IrpProcessingComplete, LowerDriverReturn, MarkDevicePower, MarkingQueuedIrps, MarkIrpPending, MarkIrpPending2, MarkPower(wdm),MarkPowerDown(wdm), MarkQueryRelations(wdm), MarkStartDevice(wdm), PendedCompletedRequest, PendedCompletedRequest2, PendedCompletedRequest3, PendedCompletedRequestEx, PnpIrpCompletion, PowerDownFail, PowerUpFail, RemoveLockForward, RemoveLockForward2, RemoveLockForwardDeviceControl, RemoveLockForwardDeviceControl2, RemoveLockForwardDeviceControlInternal, RemoveLockForwardDeviceControlInternal2, RemoveLockForwardRead, RemoveLockForwardRead2, RemoveLockForwardWrite, RemoveLockForwardWrite2, RemoveLockMnRemove2, RemoveLockMnSurpriseRemove, RemoveLockQueryMnRemove, TargetRelationNeedsRef, WmiForward |
Voir aussi
Commentaires
https://aka.ms/ContentUserFeedback.
Bientôt disponible : Tout au long de 2024, nous allons supprimer progressivement GitHub Issues comme mécanisme de commentaires pour le contenu et le remplacer par un nouveau système de commentaires. Pour plus d’informations, consultezEnvoyer et afficher des commentaires pour