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) |