Поделиться через


Функция IoIsOperationSynchronous (ntifs.h)

Подпрограмма IoIsOperationSynchronous определяет, представляет ли данный IRP синхронный или асинхронный запрос ввода-вывода.

Синтаксис

BOOLEAN IoIsOperationSynchronous(
  [in] PIRP Irp
);

Параметры

[in] Irp

Указатель на IRP для операции.

Возвращаемое значение

IoIsOperationSynchronous возвращает значение TRUE, если операция синхронна, в противном случае — FALSE.

Замечания

IoIsOperationSynchronous определяет, запрашивает ли данная операция IRP синхронной или асинхронной операции ввода-вывода в соответствии со следующими условиями:

  • Если IRP запрашивает асинхронное разбиение ввода-вывода, операция выполняется асинхронно, даже если одно из других условий имеет значение true.

  • Если IRP запрашивает синхронную разбиение операций ввода-вывода, операция синхронна.

  • Если объект файла был открыт для синхронного ввода-вывода, операция синхронна.

  • Если флаг IRP_SYNCHRONOUS_API задан в IRP, операция синхронна. Этот флаг устанавливается для операций, таких как ZwQueryInformationFile и ZwSetInformationFile, которые всегда синхронны, даже если он был открыт для асинхронного ввода-вывода.

  • Если ни одно из указанных выше условий не имеет значения true, операция выполняется асинхронно.

IoIsOperationSynchronous также возвращает значение TRUE, если IRP содержит запрос IOCTL или FSCTL с кодом управления операцией ввода-вывода или файловой системой, определенным с METHOD_BUFFERED, даже если объект файла был открыт для асинхронного ввода-вывода. Такой запрос, скорее всего, будет синхронизирован файловой системой, но это не обязательно верно во всех случаях.

Требования

Требование Ценность
целевая платформа Всеобщий
заголовка ntifs.h (include Ntifs.h)
библиотеки NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile