Compartir a través de


FSCTL_REQUEST_OPLOCK código de control

El código de control FSCTL_REQUEST_OPLOCK solicita un bloqueo oportunista (oplock) en un archivo o confirma que se ha producido una interrupción de interbloqueo.

Para obtener más información sobre los bloqueos oportunistas, consulta Bloqueos oportunistas en la documentación del escritorio de Windows. Para obtener más información sobre los controles OPLOCK del modo de usuario, vea Códigos de control de administración de archivos en la documentación del escritorio de Windows.

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

Parámetros

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

  • Irp: puntero al IRP para una solicitud IRP_MJ_FILE_SYSTEM_CONTROL FSCTL. El parámetro FsControlCode para la operación debe ser FSCTL_REQUEST_OPLOCK.

  • OpenCount: número de identificadores de usuario para el archivo si la solicitud es para un interbloqueo exclusivo. Si la solicitud es para un interbloqueo que se puede compartir, OpenCount es cero si no existen bloqueos de intervalo de bytes en el archivo. De lo contrario, OpenCount es distinto de cero. El autor de la llamada puede llamar a la rutina FsRtlOplockIsSharedRequest en el IRP para determinar si la solicitud es para un interbloqueo que se puede compartir.

  • Marcas: máscara de bits para las operaciones de interbloqueo asociadas. Un sistema de archivos o un controlador de filtro establece bits para especificar el comportamiento de FsRtlOplockFsctrlEx. El parámetro Flags tiene las siguientes opciones:

    Valor Significado
    OPLOCK_FSCTRL_FLAG_ALL_KEYS_MATCH (0x00000001) Especifica que el sistema de archivos ha comprobado que todas las teclas de bloqueo oportunistas coinciden en cualquier identificador que esté abierto actualmente. Al especificar esta marca, el paquete oplock puede conceder un interbloqueo de nivel RW o RWH cuando existe más de un identificador abierto en el archivo. Para obtener más información sobre los tipos de interbloqueo, vea Información general.

Bloque de estado

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

Código Significado
STATUS_PENDING Se concedió el interbloqueo. Se trata de un código de éxito.
STATUS_CANCELLED El IRP se canceló antes de que se completara la operación de FSCTL_REQUEST_OPLOCK. Se trata de un código de error.
STATUS_OPLOCK_NOT_GRANTED No se pudo conceder el interbloqueo. 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

FsRtlOplockFsctrlEx

FsRtlOplockIsSharedRequest

IRP_MJ_FILE_SYSTEM_CONTROL