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,即使其中一個其他條件成立,作業也是異步的。
如果 IRP 要求同步分頁 I/O,作業會是同步的。
如果檔案物件已針對同步 I/O 開啟,作業會是同步的。
如果在 IRP 中設定IRP_SYNCHRONOUS_API旗標,作業會是同步的。 此旗標是針對作業所設定,例如 ZwQueryInformationFile 和 ZwSetInformationFile,即使對異步 I/O 開啟的檔案物件執行也一樣。
如果上述條件都不是 true,則作業是異步的。
IoIsOperationSynchronous 如果 IRP 包含 IOCTL 或 FSCTL 要求,且其 I/O 或文件系統控制程式程式代碼是以 METHOD_BUFFERED 定義,即使檔案物件已針對異步 I/O 開啟,也會傳回 TRUE。 這類要求可能由文件系統同步處理,但在所有情況下都不一定成立。
規格需求
需求 | 值 |
---|---|
目標平台 | Universal |
標頭 | ntifs.h (包含 Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | 任何層級 |