Compartir a través de


FSCTL_OPBATCH_ACK_CLOSE_PENDING código de control

El código de control FSCTL_OPBATCH_ACK_CLOSE_PENDING responde a la notificación de que se ha interrumpido un bloqueo oportunista (oplock) exclusivo (nivel 1, lote o filtro) en un archivo. Una aplicación cliente envía este código de control para indicar que reconoce la interrupción de interbloqueo y está a punto de cerrar el identificador de archivo.

En el caso de una interrupción de interbloqueo por lotes o filtro, el autor de la llamada debe cerrar su identificador de archivo después de enviar este código de control. De lo contrario, el sistema bloqueará la espera de que se cierre el identificador de archivo.

Este código de control no está diseñado para usarse con interbloqueos de nivel 1. Sin embargo, para una interrupción de interbloqueo de nivel 1, el sistema trata este código de control como una confirmación completa de la interrupción y el autor de la llamada no es necesario para cerrar el identificador de archivo.

Este código de control rara vez se usa. Cuando se notifica a una aplicación cliente una interrupción de interbloqueo para un archivo y cierra su identificador para el archivo, el sistema trata el identificador de archivo cerca como una confirmación completa de la interrupción de interbloqueo de operación. Por lo tanto, nunca es necesario enviar este código de control.

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 de FSCTL_OPBATCH_ACK_CLOSE_PENDING, 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_OPBATCH_ACK_CLOSE_PENDING.

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

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

Bloque de estado

FltOplockFsctrl siempre devuelve FLT_PREOP_COMPLETE para esta operación.

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

Código Significado
STATUS_SUCCESS El interbloqueo mantenido por este identificador estaba en proceso de romperse.
STATUS_INVALID_OPLOCK_PROTOCOL Este identificador no ha mantenido ningún interbloqueo o la interrupción del interbloqueo no está actualmente en curso. Se trata de un código de error.

Requisitos

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

Consulte también

FLT_CALLBACK_DATA

FLT_PARAMETERS para IRP_MJ_FILE_SYSTEM_CONTROL

FltOplockFsctrl

FSCTL_OPLOCK_BREAK_ACK_NO_2

FSCTL_OPLOCK_BREAK_ACKNOWLEDGE

FSCTL_OPLOCK_BREAK_NOTIFY

FSCTL_REQUEST_BATCH_OPLOCK

FSCTL_REQUEST_FILTER_OPLOCK

FSCTL_REQUEST_OPLOCK_LEVEL_1

FSCTL_REQUEST_OPLOCK_LEVEL_2

FsRtlOplockFsctrl

IRP_MJ_FILE_SYSTEM_CONTROL