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 |