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 |