Compartilhar via


Função IoIsOperationSynchronous (ntifs.h)

A rotina de 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.

Valor de retorno

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

Observações

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 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 definido com METHOD_BUFFERED, mesmo que o objeto de arquivo tenha sido aberto para E/S assíncrona. Essa solicitação provavelmente será tornada síncrona pelo sistema de arquivos, mas isso não é necessariamente verdadeiro em todos os casos.

Requisitos

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

Consulte também

IRP

IoBuildSynchronousFsdRequest

IoCreateFile

IoCreateFileEx

IoCreateFileSpecifyDeviceObjectHint

ZwCreateFile

ZwQueryInformationFile

ZwSetInformationFile