共用方式為


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旗標,作業會是同步的。 此旗標是針對作業所設定,例如 ZwQueryInformationFileZwSetInformationFile,即使對異步 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 任何層級

另請參閱

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile