Fonction IoIsOperationSynchronous (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 retournée
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, selon les 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 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 du système d’E/S ou de système de fichiers qui a été défini avec METHOD_BUFFERED, même si l’objet fichier a été ouvert pour les E/S asynchrones. Une telle demande est susceptible d’être rendue synchrone par le système de fichiers, mais ce n’est pas nécessairement vrai dans tous les cas.
Configuration requise
Condition requise | Valeur |
---|---|
Plateforme cible | Universal |
En-tête | ntifs.h (inclure Ntifs.h) |
Bibliothèque | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | N’importe quel niveau |