IoIsOperationSynchronous-Funktion (ntifs.h)
Die IoIsOperationSynchronous-Routine bestimmt, ob ein bestimmter IRP eine synchrone oder asynchrone E/A-Anforderung darstellt.
Syntax
BOOLEAN IoIsOperationSynchronous(
[in] PIRP Irp
);
Parameter
[in] Irp
Zeiger auf den IRP für den Vorgang.
Rückgabewert
IoIsOperationSynchronous gibt TRUE zurück, wenn der Vorgang synchron ist, andernfalls FALSE.
Hinweise
IoIsOperationSynchronous bestimmt gemäß den folgenden Bedingungen, ob ein bestimmter IRP einen synchronen oder asynchronen E/A-Vorgang anfordert:
Wenn der IRP asynchrone E/A-Paging-E/A anfordert, ist der Vorgang asynchron, auch wenn eine der anderen Bedingungen zutrifft.
Wenn der IRP synchrone E/A-Paging-E/A anfordert, ist der Vorgang synchron.
Wenn das Dateiobjekt für synchrone E/A geöffnet wurde, ist der Vorgang synchron.
Wenn das IRP_SYNCHRONOUS_API-Flag in der IRP festgelegt ist, ist der Vorgang synchron. Dieses Flag wird für Vorgänge wie ZwQueryInformationFile und ZwSetInformationFile festgelegt, die immer synchron sind, auch wenn sie für ein Dateiobjekt ausgeführt werden, das für asynchrone E/A-Vorgänge geöffnet wurde.
Wenn keine der oben genannten Bedingungen zutrifft, ist der Vorgang asynchron.
IoIsOperationSynchronous gibt auch TRUE zurück, wenn der IRP eine IOCTL- oder FSCTL-Anforderung mit einem E/A- oder Dateisystemsteuerungscode enthält, der mit METHOD_BUFFERED definiert wurde, auch wenn das Dateiobjekt für asynchrone E/A geöffnet wurde. Eine solche Anforderung wird wahrscheinlich synchron vom Dateisystem gestellt, aber dies gilt nicht unbedingt in allen Fällen.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform | Universell |
Header | ntifs.h (include Ntifs.h) |
Bibliothek | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | Beliebige Ebene |