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_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL
FSCTL_OPBATCH_ACK_CLOSE_PENDING