IoIsOperationSynchronous 関数 (ntifs.h)
IoIsOperationSynchronous ルーチンは、特定の IRP が同期または非同期の I/O 要求を表すかどうかを決定します。
構文
BOOLEAN IoIsOperationSynchronous(
[in] PIRP Irp
);
パラメーター
[in] Irp
操作の IRP へのポインター。
戻り値
操作が同期の場合、IoIsOperationSynchronous は TRUE を返し、それ以外の場合は FALSE を返します。
注釈
IoIsOperationSynchronous は、次の条件に従って、特定の IRP が同期または非同期の I/O 操作を要求するかどうかを決定します。
IRP が非同期ページング I/O を要求する場合、他の条件のいずれかが true の場合でも、操作は非同期です。
IRP が同期ページング I/O を要求する場合、操作は同期です。
同期 I/O 用にファイル オブジェクトが開かれた場合、操作は同期です。
IRP_SYNCHRONOUS_API フラグが IRP で設定されている場合、操作は同期です。 このフラグは、非同期 I/O 用に開かれたファイル オブジェクトに対して実行された場合でも、常に同期的な ZwQueryInformationFile や ZwSetInformationFile などの操作に設定されます。
上記の条件に該当しない場合、操作は非同期です。
IoIsOperationSynchronous は、ファイル オブジェクトが非同期 I/O 用に開かれた場合でも、METHOD_BUFFERED で定義された I/O またはファイル システム制御コードを含む IOCTL または FSCTL 要求が IRP に含まれている場合にも TRUE を返します。 このような要求はファイル システムによって同期される可能性がありますが、これは必ずしもすべての場合に当てはまるとは限りません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | ntifs.h (Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | 任意のレベル |