Compartir a través de


Comprobación del estado de interbloqueo de una operación de IRP_MJ_SET_INFORMATION

Las siguientes operaciones de IRP_MJ_SET_INFORMATION comprueban el estado de interbloqueo:

  • FileEndOfFileInformation
  • FileAllocationInformation
  • FileValidDataLengthInformation
  • FileRenameInformation
  • FileShortNameInformation
  • FileLinkInformation
  • FileDispositionInformation

Comprobación del estado de oplock para las operaciones FileEndOfFileInformation, FileAllocationInformation y FileValidDataLengthInformation

Esta información se aplica cuando se realizan las siguientes operaciones en un archivo o secuencia:

  • Un llamador intenta cambiar el tamaño lógico de la secuencia. Tenga en cuenta que cuando el subproceso de escritura diferida del administrador de caché intenta establecer un nuevo final de archivo, no se realiza ninguna comprobación de interbloqueo. Esto se debe a que la comprobación se realiza anteriormente cuando se recibe la solicitud de escritura real.

  • Un llamador intenta cambiar el tamaño asignado de la secuencia.

Condiciones para un tipo de solicitud de nivel 2

  • Siempre interrumpa en Ninguno.

  • No se requiere confirmación; la operación continúa inmediatamente.

Condiciones para todos los demás tipos de solicitud

  • Interrumpa en IRP_MJ_SET_INFORMATION (para FileEndOfFileInformation, FileAllocationInformation y FileValidDataLengthInformation) cuando la operación se produce en un FILE_OBJECT con una clave de interbloqueo que difiere de la clave del FILE_OBJECT que posee el oplock. Si se interrumpe el interbloqueo, interrumpa en Ninguno.

  • Los requisitos de confirmación varían de la siguiente manera:

    • Solicitud de lectura: No se requiere confirmación; la operación continúa inmediatamente.

    • Read-Handle solicitud: aunque se requiere confirmación de la interrupción, la operación continúa inmediatamente (es decir, sin esperar la confirmación).

    • Solicitudes de nivel 1, Batch, Filter, Read-Write y Read-Write-Handle: se debe recibir una confirmación antes de que continúe la operación.

Comprobación del estado de oplock para las operaciones FileRenameInformation, FileShortNameInformation y FileLinkInformation

Esta información se aplica cuando se realizan las siguientes operaciones en un archivo o secuencia:

  • Se cambia el nombre del archivo o la secuencia.

  • Se establece un nombre corto para el archivo.

  • Se está creando un vínculo duro para el archivo. Esto afecta al estado de interbloqueo si el nuevo vínculo duro está supersediendo un vínculo existente a otro archivo y el interbloqueo existe en el vínculo que se está reemplazando.

  • Se está cambiando el nombre de un directorio antecesor de la secuencia en la que existe el oplock o se establece el nombre corto del directorio antecesor.

Condiciones para las operaciones de nivel 1, nivel 2, lectura y Read-Write

  • El interbloqueo no está roto.

  • No se requiere ninguna confirmación y la operación continúa inmediatamente.

Condiciones para las operaciones batch, Filter, Read-Handle y Read-Write-Handle

  • Interrumpa en IRP_MJ_SET_INFORMATION (para FileRenameInformation, FileShortNameInformation y FileLinkInformation) cuando la operación se produce en un FILE_OBJECT con una clave de interbloqueo que difiere de la clave del FILE_OBJECT que posee el oplock. Si se interrumpe el interbloqueo:

    • Las solicitudes batch y Filter se interrumpen en Ninguno.

    • Read-Handle solicitudes se interrumpen en Lectura.

    • Las solicitudes Read-Write-Handle se interrumpen en Lectura y escritura.

  • Se debe recibir una confirmación antes de que continúe la operación.

Comprobación del estado de interbloqueo para las operaciones FileDispositionInformation

Esta información se aplica cuando un llamador intenta eliminar el archivo.

  • Interrumpa en IRP_MJ_SET_INFORMATION (para FileDispositionInformation) cuando la operación se produce en un FILE_OBJECT con una clave de interbloqueo que difiere de la clave del FILE_OBJECT que posee el interbloqueo Y cuando FILE_DISPOSITION_INFORMATION. DeleteFile es TRUE**. Si se interrumpe el interbloqueo:

    • Read-Handle solicitudes se interrumpen en Lectura.

    • Las solicitudes Read-Write-Handle se interrumpen en Lectura y escritura.

  • Se debe recibir una confirmación antes de que continúe la operación.