IoIsOperationSynchronous, fonction (ntifs.h)
La routine IoIsOperationSynchronous détermine si un IRP donné représente une requête d’E/S synchrone ou asynchrone.
Syntaxe
BOOLEAN IoIsOperationSynchronous(
[in] PIRP Irp
);
Paramètres
[in] Irp
Pointeur vers l’IRP pour l’opération.
Valeur de retour
IoIsOperationSynchronous retourne TRUE si l’opération est synchrone, sinon FALSE.
Remarques
IoIsOperationSynchronous détermine si un IRP donné demande une opération d’E/S synchrone ou asynchrone, conformément aux conditions suivantes :
Si l’IRP demande des E/S de pagination asynchrones, l’opération est asynchrone, même si l’une des autres conditions est vraie.
Si l’IRP demande des E/S de pagination synchrone, l’opération est synchrone.
Si l’objet de fichier a été ouvert pour les E/S synchrones, l’opération est synchrone.
Si l’indicateur IRP_SYNCHRONOUS_API est défini dans l’IRP, l’opération est synchrone. Cet indicateur est défini pour les opérations, telles que ZwQueryInformationFile et ZwSetInformationFile, qui sont toujours synchrones, même lorsqu’elles sont effectuées sur un objet de fichier ouvert pour les E/S asynchrones.
Si aucune des conditions ci-dessus n’est vraie, l’opération est asynchrone.
IoIsOperationSynchronous retourne également TRUE si l’IRP contient une requête IOCTL ou FSCTL avec un code de contrôle d’E/S ou de système de fichiers défini avec METHOD_BUFFERED, même si l’objet de fichier a été ouvert pour les E/S asynchrones. Une telle demande est susceptible d’être effectuée de manière synchrone par le système de fichiers, mais cela n’est pas nécessairement vrai dans tous les cas.
Exigences
Exigence | Valeur |
---|---|
plateforme cible | Universel |
d’en-tête | ntifs.h (include Ntifs.h) |
bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |