Compartilhar via


Função IoIsOperationSynchronous (ntifs.h)

A rotina IoIsOperationSynchronous determina se um determinado IRP representa uma solicitação de E/S síncrona ou assíncrona.

Sintaxe

BOOLEAN IoIsOperationSynchronous(
  [in] PIRP Irp
);

Parâmetros

[in] Irp

Ponteiro para o IRP para a operação.

Retornar valor

IoIsOperationSynchronous retornará TRUE se a operação for síncrona; caso contrário, FALSE.

Comentários

IoIsOperationSynchronous determina se um determinado IRP solicita uma operação de E/S síncrona ou assíncrona, de acordo com as seguintes condições:

  • Se o IRP solicitar E/S de paginação assíncrona, a operação será assíncrona, mesmo que uma das outras condições seja verdadeira.

  • Se o IRP solicitar E/S de paginação síncrona, a operação será síncrona.

  • Se o objeto de arquivo tiver sido aberto para E/S síncrona, a operação será síncrona.

  • Se o sinalizador IRP_SYNCHRONOUS_API estiver definido no IRP, a operação será síncrona. Esse sinalizador é definido para operações, como ZwQueryInformationFile e ZwSetInformationFile, que são sempre síncronas, mesmo quando executadas em um objeto de arquivo que foi aberto para E/S assíncrona.

  • Se nenhuma das condições acima for verdadeira, a operação será assíncrona.

IoIsOperationSynchronous também retornará TRUE se o IRP contiver uma solicitação IOCTL ou FSCTL com um código de controle de sistema de arquivos ou de E/S que foi definido com METHOD_BUFFERED, mesmo que o objeto de arquivo tenha sido aberto para E/S assíncrona. É provável que essa solicitação seja síncrona pelo sistema de arquivos, mas isso não é necessariamente verdadeiro em todos os casos.

Requisitos

Requisito Valor
Plataforma de Destino Universal
Cabeçalho ntifs.h (inclua Ntifs.h)
Biblioteca NtosKrnl.lib
DLL NtosKrnl.exe
IRQL Qualquer nível

Confira também

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile