Compartir a través de


FSCTL_OPLOCK_BREAK_NOTIFY código de control

El código de control FSCTL_OPLOCK_BREAK_NOTIFY permite que la aplicación que realiza la llamada espere a que se complete una interrupción de bloqueo oportunista (oplock).

Esta operación solo es útil para una interrupción de interbloqueo que ya se inició cuando se abrió el identificador del autor de la llamada. El identificador debe haberse abierto con FILE_COMPLETE_IF_OPLOCKED. Esta operación no tiene sentido si actualmente se mantiene un interbloqueo de operación y no se ha iniciado la interrupción del interbloqueo.

Para procesar este código de control, un minifiltro llama a FltOplockFsctrl con los parámetros siguientes. Un sistema de archivos o un controlador de filtro heredado llama a FsRtlOplockFsctrl.

Para obtener más información sobre el bloqueo oportunista y sobre el código de control FSCTL_OPLOCK_BREAK_NOTIFY, consulte la documentación de Microsoft Windows SDK.

Parámetros

  • Oplock: puntero de objeto oplock opaco para el archivo.

  • CallbackData: FltOplockFsctrl solo. Estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) para una solicitud IRP_MJ_FILE_SYSTEM_CONTROL FSCTL. El parámetro FsControlCode para la operación debe ser FSCTL_OPLOCK_BREAK_NOTIFY.

  • Irp: solo FsRtlOplockFsctrl . IRP para una solicitud IRP_MJ_FILE_SYSTEM_CONTROL FSCTL. El parámetro FsControlCode para la operación debe ser FSCTL_OPLOCK_BREAK_NOTIFY.

  • OpenCount: no se usa con esta operación; se establece en cero.

Bloque de estado

FltOplockFsctrl devuelve FLT_PREOP_PENDING si el interbloqueo de oplock está en curso y el IRP se completará cuando se complete la interrupción del interbloqueo de operación. (En este caso, el IRP se puede completar con STATUS_SUCCESS o STATUS_CANCELLED). De lo contrario, FltOplockFsctrl devuelve FLT_PREOP_COMPLETE.

FsRtlOplockFsctrl devuelve uno de los siguientes valores NTSTATUS para esta operación:

Código Significado
STATUS_SUCCESS No se ha mantenido ningún interbloqueo por este controlador, o se mantiene un interbloqueo y no se ha iniciado la interrupción del interbloqueo.
STATUS_INVALID_OPLOCK_PROTOCOL El IRP se canceló antes de que se completara la operación de FSCTL_OPLOCK_BREAK_NOTIFY.
STATUS_PENDING La interrupción de interbloqueo está en curso. El IRP se completará cuando se complete la interrupción del interbloqueo de operación. El IRP se puede completar con STATUS_SUCCESS o STATUS_CANCELLED. Se trata de un código de éxito.

Requisitos

Tipo de requisito Requisito
Encabezado Ntifs.h (incluya Ntifs.h o Fltkernel.h)

Consulte también

FLT_CALLBACK_DATA

FLT_PARAMETERS

FLT_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL

FltOplockFsctrl

FSCTL_OPBATCH_ACK_CLOSE_PENDING

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL