Macro FsRtlCheckOplock (rxprocs.h)
A rotina FsRtlCheckOplock sincroniza o IRP para uma operação de E/S de arquivo com o estado atual de bloqueio oportunista (oplock) do arquivo.
Sintaxe
void FsRtlCheckOplock(
A1,
A2,
A3,
A4,
A5
);
Parâmetros
A1
Um ponteiro de bloqueio oportunista opaco para o arquivo. Esse ponteiro deve ter sido inicializado por uma chamada anterior para FsRtlInitializeOplock.
A2
Um ponteiro para o IRP para a operação de E/S.
A3
Um ponteiro para informações de contexto definidas pelo chamador a serem passadas para as rotinas de retorno de chamada para as quais os parâmetros CompletionRoutine e PostIrpRoutine apontam.
A4
Um ponteiro para uma rotina de retorno de chamada fornecida pelo chamador. Se uma quebra de bloqueio oportunista estiver em andamento, essa rotina será chamada quando a interrupção for concluída. Esse parâmetro é opcional e pode ser NULL. Se for NULL, o chamador será colocado em um estado de espera até que a quebra de bloqueio oportunista seja concluída.
Essa rotina é declarada da seguinte maneira:
typedef VOID (*POPLOCK_WAIT_COMPLETE_ROUTINE) ( IN PVOID Context, IN PIRP Irp ); |
Essa rotina tem os seguintes parâmetros:
- Contexto
- Irp
Um ponteiro de informações de contexto que foi passado no parâmetro Context para FsRtlCheckOplock.
Um ponteiro para o IRP para a operação de E/S.
A5
Um ponteiro para uma rotina de retorno de chamada fornecida pelo chamador a ser chamada se a operação de E/S for postada em uma fila de trabalho. Esse parâmetro é opcional e pode ser NULL.
Essa rotina é declarada da seguinte maneira:
typedef VOID (*POPLOCK_FS_PREPOST_IRP) ( IN PVOID Context, IN PIRP Irp ); |
- Contexto
- Irp
Um ponteiro de informações de contexto que foi passado no parâmetro Context para FsRtlCheckOplock.
Um ponteiro para o IRP para a operação de E/S.
Retornar valor
Nenhum
Comentários
FsRtlCheckOplock sincroniza o IRP para uma operação de E/S com o estado de bloqueio oportunista atual de um arquivo de acordo com as seguintes condições:
- Se a operação de E/S fizer com que o bloqueio oportunista interrompa, a quebra de bloqueio oportunista será iniciada.
- Se a operação de E/S não puder continuar até que a quebra de bloqueio oportunista seja concluída, FsRtlCheckOplock retornará STATUS_PENDING e chamará a rotina de retorno de chamada para a qual o parâmetro PostIrpRoutine aponta.
IRP_MJ_CLEANUP
IRP_MJ_CREATE
IRP_MJ_FILE_SYSTEM_CONTROL
IRP_MJ_FLUSH_BUFFERS
IRP_MJ_LOCK_CONTROL
IRP_MJ_READ
IRP_MJ_SET_INFORMATION
IRP_MJ_WRITE
Para obter informações detalhadas sobre bloqueios oportunistas, consulte a documentação do SDK do Microsoft Windows.
Os minifiltros devem chamar FltCheckOplock em vez de FsRtlCheckOplock.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Essa rotina está disponível no Microsoft Windows 2000 e versões posteriores de sistemas operacionais Windows. |
Plataforma de Destino | Universal |
Cabeçalho | rxprocs.h (inclua FltKernel.h, Ntifs.h) |
Biblioteca | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | <= APC_LEVEL |
Confira também
FSCTL_OPBATCH_ACK_CLOSE_PENDING