Condividi tramite


Funzione IoIsOperationSynchronous (ntifs.h)

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

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.

Osservazioni

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

  • Se l'IRP richiede il paging asincrono di I/O, l'operazione è asincrona, anche se una delle altre condizioni è vera.

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

  • Se l'oggetto file è stato aperto per operazioni di I/O sincrone, 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 quando vengono eseguite su un oggetto file aperto per l'I/O asincrona.

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

IoIsOperationSynchronous restituisce TRUE anche se L'IRP contiene una richiesta IOCTL o MDFTL con un codice di controllo I/O o file system definito con METHOD_BUFFERED, anche se l'oggetto file è stato aperto per operazioni di I/O asincrone. È probabile che tale richiesta venga effettuata in modo sincrono dal file system, ma questo non è necessariamente vero in tutti i casi.

Fabbisogno

Requisito Valore
piattaforma di destinazione Universale
intestazione ntifs.h (include Ntifs.h)
libreria NtosKrnl.lib
dll NtosKrnl.exe
IRQL Qualsiasi livello

Vedere anche

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile