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

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

Синтаксис

BOOLEAN IoIsOperationSynchronous(
  [in] PIRP Irp
);

Параметры

[in] Irp

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

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

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

Комментарии

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

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

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

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

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

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

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

Требования

Требование Значение
Целевая платформа Универсальное
Верхняя часть ntifs.h (включая Ntifs.h)
Библиотека NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Любой уровень

См. также раздел

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile