Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
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 opaco 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 llamador que se va a pasar a las rutinas de devolución de llamada a las que apuntan los parámetros de WaitCompletionRoutine y PrePostCallbackDataRoutine .
[in, optional] WaitCompletionRoutine
Puntero a una rutina de devolución de llamada proporcionada por el autor de la llamada. Si hay una interrupción de interbloqueo en curso, se llama a esta rutina cuando se completa la interrupción. Este parámetro es opcional y se puede 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 de operación.
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.
Contexto
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 la operación de E/S se va a poner en lápiz. Se llama a la rutina antes de que el paquete oplock lápiz el IRP. Este parámetro es opcional y se puede 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.
Contexto
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 |
|---|---|
|
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 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 de FLT_CALLBACK_DATA. El parámetro CallbackData apunta a este FLT_CALLBACK_DATA. |
|
Se inició una interrupción de interbloqueo, lo que provocó 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 . |
|
Los datos de devolución de llamada a los que apunta el parámetro CallbackData apunta a no se han lápiz y la operación de E/S se realizó inmediatamente. |
Observaciones
Para obtener más información sobre los bloqueos oportunistas, consulte la documentación del SDK de Microsoft Windows.
Requisitos
| Requisito | Valor |
|---|---|
| cliente mínimo admitido | La rutina FltOplockBreakToNone está disponible a partir de Windows 7. |
| de la plataforma de destino de | Universal |
| encabezado de | fltkernel.h (incluya Fltkernel.h) |
| biblioteca de | FltMgr.lib |
| DLL de | Fltmgr.sys |
| irQL | <= APC_LEVEL |