FSCTL_OPLOCK_BREAK_NOTIFY código de controle
O código de controle FSCTL_OPLOCK_BREAK_NOTIFY permite que o aplicativo de chamada aguarde a conclusão de uma quebra de bloqueio oportunista (oplock).
Essa operação é útil apenas para uma quebra de oplock que já foi iniciada quando o identificador do chamador foi aberto. O identificador deve ter sido aberto com FILE_COMPLETE_IF_OPLOCKED. Essa operação não terá sentido se um oplock for mantido no momento e a quebra de oplock não tiver sido iniciada.
Para processar esse código de controle, um minifiltro chama FltOplockFsctrl com os parâmetros a seguir. Um sistema de arquivos ou driver de filtro herdado chama FsRtlOplockFsctrl.
Para obter mais informações sobre bloqueio oportunista e sobre o código de controle FSCTL_OPLOCK_BREAK_NOTIFY, consulte a documentação do SDK do Microsoft Windows.
Parâmetros
Oplock: ponteiro de objeto oplock oplock para o arquivo.
CallbackData: somente FltOplockFsctrl . Estrutura de dados de retorno de chamada (FLT_CALLBACK_DATA) para uma solicitação FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. O parâmetro FsControlCode para a operação deve ser FSCTL_OPLOCK_BREAK_NOTIFY.
Irp: somente FsRtlOplockFsctrl . IRP para uma solicitação FSCTL IRP_MJ_FILE_SYSTEM_CONTROL. O parâmetro FsControlCode para a operação deve ser FSCTL_OPLOCK_BREAK_NOTIFY.
OpenCount: não usado com esta operação; definido como zero.
Bloco de status
FltOplockFsctrl retorna FLT_PREOP_PENDING se a quebra de oplock estiver em andamento e o IRP será concluído quando a quebra de oplock for concluída. (Nesse caso, o IRP pode eventualmente ser concluído com STATUS_SUCCESS ou STATUS_CANCELLED.) Caso contrário, FltOplockFsctrl retornará FLT_PREOP_COMPLETE.
FsRtlOplockFsctrl retorna um dos seguintes valores NTSTATUS para esta operação:
Código | Significado |
---|---|
STATUS_SUCCESS | Nenhum oplock foi mantido por esse identificador ou um oplock é mantido e a quebra de oplock não foi iniciada. |
STATUS_INVALID_OPLOCK_PROTOCOL | O IRP foi cancelado antes da conclusão da operação de FSCTL_OPLOCK_BREAK_NOTIFY. |
STATUS_PENDING | A quebra do oplock está em andamento. O IRP será concluído quando a quebra de oplock for concluída. O IRP pode eventualmente ser concluído com STATUS_SUCCESS ou STATUS_CANCELLED. Esse é um código de êxito. |
Requisitos
Tipo de Requisito | Requisito |
---|---|
parâmetro | Ntifs.h (inclua Ntifs.h ou Fltkernel.h) |
Confira também
FLT_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL
FSCTL_OPBATCH_ACK_CLOSE_PENDING