Funzione IoIsOperationSynchronous (ntifs.h)

La routine IoIsOperationSynchronous determina se un determinato IRP rappresenta una richiesta di I/O sincrona o sincrona.

Sintassi

BOOLEAN IoIsOperationSynchronous(
  [in] PIRP Irp
);

Parametri

[in] Irp

Puntatore all'IRP per l'operazione.

Valore restituito

IoIsOperationSynchronous restituisce TRUE se l'operazione è sincrona, in caso contrario FALSE.

Commenti

IoIsOperationSynchronous determina se un determinato IRP richiede un'operazione di I/O sincrona o sincrona, in base alle condizioni seguenti:

  • Se l'IRP richiede l'I/O asincrona, l'operazione è asincrona, anche se una delle altre condizioni è true.

  • Se l'IRP richiede il paging I/O sincrono, l'operazione è sincrona.

  • Se l'oggetto file è stato aperto per I/O sincrono, l'operazione è sincrona.

  • Se il flag IRP_SYNCHRONOUS_API è impostato in IRP, l'operazione è sincrona. Questo flag è impostato per le operazioni, ad esempio ZwQueryInformationFile e ZwSetInformationFile, che sono sempre sincrone, anche se eseguite su un oggetto file aperto per I/O asincrono.

  • Se nessuna delle condizioni precedenti è true, l'operazione è asincrona.

IoIsOperationSynchronous restituisce true anche se l'IRP contiene una richiesta IOCTL o FSCTL con un codice di controllo di I/O o file system definito con METHOD_BUFFERED, anche se l'oggetto file è stato aperto per I/O asincrona. Tale richiesta è probabile che venga effettuata sincrona dal file system, ma questa non è necessariamente vera in tutti i casi.

Requisiti

Requisito Valore
Piattaforma di destinazione Universale
Intestazione ntifs.h (include Ntifs.h)
Libreria NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualsiasi livello

Vedi anche

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile