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 |