Función FltOplockBreakToNone (fltkernel.h)

La rutina FltOplockBreakToNone interrumpe todos los bloqueos oportunistas (oplocks) inmediatamente sin tener en cuenta ninguna tecla de interbloqueo.

Sintaxis

FLT_PREOP_CALLBACK_STATUS FLTAPI FltOplockBreakToNone(
  [in]           POPLOCK                                 Oplock,
  [in]           PFLT_CALLBACK_DATA                      CallbackData,
  [in, optional] PVOID                                   Context,
  [in, optional] PFLTOPLOCK_WAIT_COMPLETE_ROUTINE        WaitCompletionRoutine,
  [in, optional] PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE PrePostCallbackDataRoutine
);

Parámetros

[in] Oplock

Puntero oplock oppac para el archivo. Este puntero debe haberse inicializado mediante una llamada anterior a FltInitializeOplock.

[in] CallbackData

Puntero a la estructura de datos de devolución de llamada (FLT_CALLBACK_DATA) para la operación de E/S.

[in, optional] Context

Puntero a la información de contexto definida por el autor de la llamada a las rutinas de devolución de llamada a las que apuntan los parámetros WaitCompletionRoutine y PrePostCallbackDataRoutine .

[in, optional] WaitCompletionRoutine

Puntero a una rutina de devolución de llamada proporcionada por el autor de la llamada. Si hay un salto de interbloqueo en curso, se llama a esta rutina cuando se completa la interrupción. Este parámetro es opcional y puede ser NULL. Si es NULL, el autor de la llamada se coloca en un estado de espera hasta que se complete la interrupción del interbloqueo.

Esta rutina se declara de la siguiente manera:

typedef VOID
(*PFLTOPLOCK_WAIT_COMPLETE_ROUTINE) (
    __in PFLT_CALLBACK_DATA CallbackData,
 __in_opt PVOID Context
      );

Esta rutina tiene los parámetros siguientes:

CallbackData

Puntero a la estructura de datos de devolución de llamada para la operación de E/S.

Context

Puntero de información de contexto que se pasó en el parámetro Context a FltOplockBreakToNone.

[in, optional] PrePostCallbackDataRoutine

Puntero a una rutina de devolución de llamada proporcionada por el autor de la llamada que se va a llamar si se va a escribir la operación de E/S. Se llama a la rutina antes de que el paquete oplock lápiz el IRP. Este parámetro es opcional y puede ser NULL.

Esta rutina se declara de la siguiente manera:

typedef VOID
(*PFLTOPLOCK_PREPOST_CALLBACKDATA_ROUTINE) (
    __in PFLT_CALLBACK_DATA CallbackData,
 __in_opt PVOID Context
      );

Esta rutina tiene los parámetros siguientes:

CallbackData

Puntero a la estructura de datos de devolución de llamada para la operación de E/S.

Context

Puntero de información de contexto que se pasó en el parámetro Context a FltOplockBreakToNone.

Valor devuelto

FltOplockBreakToNone devuelve uno de los siguientes códigos de FLT_PREOP_CALLBACK_STATUS:

Código devuelto Descripción
FLT_PREOP_COMPLETE
FltOplockBreakToNone encontró un error de asignación de grupo o una llamada a la función FsRtlOplockBreakToNoneEx devolvió un error. FltOplockBreakToNone establecerá el código de error en el miembro Status de la estructura IO_STATUS_BLOCK del miembro IoStatus . La estructura IO_STATUS_BLOCK se especifica en el miembro IoStatus de la estructura de datos de devolución de llamada FLT_CALLBACK_DATA . El parámetro CallbackData apunta a este FLT_CALLBACK_DATA.
FLT_PREOP_PENDING
Se inició una interrupción de interbloqueo, lo que hizo que el Administrador de filtros publicara la operación de E/S en una cola de trabajo. La operación de E/S se representa mediante los datos de devolución de llamada a los que apunta el parámetro CallbackData .
FLT_PREOP_SUCCESS_WITH_CALLBACK
Los datos de devolución de llamada a los que apunta el parámetro CallbackData no se han pendido y la operación de E/S se realizó inmediatamente.

Comentarios

Para obtener más información sobre bloqueos oportunistas, consulte la documentación de Microsoft Windows SDK.

Requisitos

Requisito Value
Cliente mínimo compatible La rutina FltOplockBreakToNone está disponible a partir de Windows 7.
Plataforma de destino Universal
Encabezado fltkernel.h (incluya Fltkernel.h)
Library FltMgr.lib
Archivo DLL Fltmgr.sys
IRQL <= APC_LEVEL

Consulte también

FLT_CALLBACK_DATA

FltInitializeOplock

FsRtlOplockBreakToNoneEx

IO_STATUS_BLOCK