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

Voir aussi

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile