IoIsOperationSynchronous-Funktion (ntifs.h)
Die IoIsOperationSynchronous Routine bestimmt, ob ein bestimmtes IRP eine synchrone oder asynchrone E/A-Anforderung darstellt.
Syntax
BOOLEAN IoIsOperationSynchronous(
[in] PIRP Irp
);
Parameter
[in] Irp
Zeiger auf das IRP für den Vorgang.
Rückgabewert
IoIsOperationSynchronous gibt TRUE zurück, wenn der Vorgang synchron ist, andernfalls FALSE.
Bemerkungen
IoIsOperationSynchronous bestimmt, ob ein bestimmter IRP einen synchronen oder asynchronen E/A-Vorgang gemäß den folgenden Bedingungen anfordert:
Wenn das IRP asynchrone Auslagerungs-E/A anfordert, ist der Vorgang asynchron, auch wenn eine der anderen Bedingungen zutrifft.
Wenn das IRP synchrone Auslagerungs-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 im IRP festgelegt ist, ist der Vorgang synchron. Dieses Flag wird für Vorgänge festgelegt, z. B. ZwQueryInformationFile und ZwSetInformationFile, die immer synchron sind, auch wenn sie für ein Dateiobjekt ausgeführt wurde, das für asynchrone E/A geöffnet wurde.
Wenn keine der oben genannten Bedingungen zutrifft, ist der Vorgang asynchron.
IoIsOperationSynchronous gibt auch TRUE zurück, wenn das IRP eine IOCTL- oder FSCTL-Anforderung mit einem I/O- 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 ist in allen Fällen nicht notwendig.
Anforderungen
Anforderung | Wert |
---|---|
Zielplattform- | Universal |
Header- | ntifs.h (einschließlich Ntifs.h) |
Library | NtosKrnl.lib |
DLL- | NtosKrnl.exe |
IRQL- | Beliebige Ebene |