Compartir a través de


enumeración CSV_CONTROL_OP (ntifs.h)

Especifica el tipo de operación de control de volumen compartido de clúster (CSV) que se usará con el código de control FSCTL_CSV_CONTROL .

Syntax

typedef enum _CSV_CONTROL_OP {
  CsvControlStartRedirectFile = 0x02,
  CsvControlStopRedirectFile = 0x03,
  CsvControlQueryRedirectState = 0x04,
  CsvControlQueryFileRevision = 0x06,
  CsvControlQueryMdsPath = 0x08,
  CsvControlQueryFileRevisionFileId128 = 0x09,
  CsvControlQueryVolumeRedirectState = 0x0a,
  CsvControlEnableUSNRangeModificationTracking = 0x0d,
  CsvControlMarkHandleLocalVolumeMount = 0x0e,
  CsvControlUnmarkHandleLocalVolumeMount = 0x0f,
  CsvControlGetCsvFsMdsPathV2 = 0x12,
  CsvControlDisableCaching = 0x13,
  CsvControlEnableCaching = 0x14,
  CsvControlStartForceDFO = 0x15,
  CsvControlStopForceDFO = 0x16,
  CsvControlQueryMdsPathNoPause = 0x17,
  CsvControlSetVolumeId = 0x18,
  CsvControlQueryVolumeId = 0x19
} CSV_CONTROL_OP, *PCSV_CONTROL_OP;

Constantes

 
CsvControlStartRedirectFile
Valor: 0x02
Inicia el redireccionamiento de archivos CSV.
CsvControlStopRedirectFile
Valor: 0x03
Detiene el redireccionamiento de archivos CSV.
CsvControlQueryRedirectState
Valor: 0x04
Busque redireccionamiento de estado. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_REDIRECT_STATE .
CsvControlQueryFileRevision
Valor: 0x06
Busque revisión de archivos. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_FILE_REVISION .
CsvControlQueryMdsPath
Valor: 0x08
Busque la ruta de acceso de MDS. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_MDS_PATH .
CsvControlQueryFileRevisionFileId128
Valor: 0x09
Busque revisión de archivos de 128 bits. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_FILE_REVISION_FILE_ID_128.
CsvControlQueryVolumeRedirectState
Valor: 0x0a
Busque redirección de estado de volumen. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_VOLUME_REDIRECT_STATE.
CsvControlEnableUSNRangeModificationTracking
Valor: 0x0d
Habilite el seguimiento del intervalo USN.
CsvControlMarkHandleLocalVolumeMount
Valor: 0x0e
Cuando un archivo VHD está a punto de montarse en bucle invertido, marca un identificador y solicita que CVSFS produzca un error en las E/S y invalide los identificadores después de un breve tiempo de espera (actualmente 20 segundos) si no hay ninguna E/S en curso.
CsvControlUnmarkHandleLocalVolumeMount
Valor: 0x0f
Cuando un archivo VHD está a punto de ser desmontado de bucle invertido, desmarca un identificador que había sido marcado previamente por CsvControlMarkHandleLocalVolumeMount.
CsvControlGetCsvFsMdsPathV2
Valor: 0x12
Busque la versión 2 de la ruta de acceso de MDS. Cuando se especifica este valor, también se debe usar la estructura CSV_QUERY_MDS_PATH_V2.
CsvControlDisableCaching
Valor: 0x13
Deshabilita el almacenamiento en caché del archivo CSV.
CsvControlEnableCaching
Valor: 0x14
Habilita el almacenamiento en caché del archivo CSV.
CsvControlStartForceDFO
Valor: 0x15
Obliga a CSVFS a iniciar el reenvío de E/S de nivel descendente en un objeto de archivo de nivel descendente (DFO). Para obtener información detallada, vea la sección Comentarios de.
CsvControlStopForceDFO
Valor: 0x16
Deje de forzar el reenvío de CSVFS de E/S en un DFO. Para obtener información detallada, vea la sección Comentarios de.
CsvControlQueryMdsPathNoPause
Valor: 0x17
Similar a CsvControlQueryMdsPath. Busque la ruta de acceso de MDS, pero si el volumen CSV está en pausa en el momento de la solicitud, establezca MdsNodeId en 0xFFFFFFFF en lugar de devolver el último nodo de coordinación. Esto permite al cliente detectar que el nodo de coordinación podría cambiar. Cuando se especifica CsvControlQueryMdsPathNoPause, también se debe usar la estructura CSV_QUERY_MDS_PATH .
CsvControlSetVolumeId
Valor: 0x18
Establezca el GUID del volumen CSV. Para obtener información detallada, vea la sección Comentarios de.
CsvControlQueryVolumeId
Valor: 0x19
Consulte si el GUID del volumen CSV está disponible. Para obtener información detallada, vea la sección Comentarios de.

Comentarios

Una alternativa a llamar al código de control FSCTL_CSV_CONTROL con esta enumeración es usar la estructura CSV_CONTROL_PARAM , que encapsula un miembro de este tipo de enumeración.

CsvControlStartForceDFO y CsvControlStopForceDFO

Cuando se abre un objeto de archivo en CSVFS, CSVFS se abre en el sistema de archivos de nivel descendente (NTFS o REFS) que coincide con cada usuario abierto. Ese objeto de archivo se abre como parte de una aplicación que abre un archivo en CSVFS y se cierra cuando la aplicación cierra el identificador del objeto de archivo en CSVFS. CSVFS abre internamente un objeto de archivo adicional denominado objeto de archivo de paginación (PFO) que se comparte entre todas las aperturas del mismo archivo en CSVFS. De forma predeterminada, CSVFS lo usa para muchas operaciones, como las siguientes:

  • Negociación de interbloqueo
  • Bloqueos de intervalo de bytes
  • Reenvío de E/S de paginación

Algunas soluciones de filtrado pueden marcar el identificador de una manera especial y, a continuación, esperar que todas las lecturas y escrituras se reenvíen de nivel descendente por CSVFS en el DFO coincidente. Una aplicación puede obligar a CSVFS a iniciar el reenvío de E/S de nivel descendente en DFO mediante el envío de CsvControlStartForceDFO. Más adelante, la aplicación puede usar CsvControlStopForceDFO para revertir al comportamiento predeterminado. Al cerrar el identificador que se usó para enviar CsvControlStartForceDFO , se revertirá implícitamente como si la aplicación enviara CsvControlStopForceDFO.

CsvControlSetVolumeId y CsvControlQueryVolumeId

Estos controles permiten minifiltros del sistema de archivos conectados al sistema de archivos de nivel inferior debajo de CSVFS para aprender el GUID del volumen CSV. El recurso de disco físico del clúster establece este GUID después de montar el sistema de archivos de nivel descendente, por lo que no está disponible si el filtro se asocia durante el montaje. Durante la asociación de filtros, el minifiltro del sistema de archivos puede emitir CsvControlQueryVolumeId para consultar si el GUID ya está disponible. El control debe enviarse a la parte superior de la pila para asegurarse de que csvflt lo recibe. Si el GUID del volumen aún no está disponible, csvflt devolverá STATUS_UNSUCCESSFUL. El filtro no debe no conectarse si el GUID del volumen aún no está disponible.

En un momento posterior, el recurso de disco físico enviará CsvControlSetVolumeId con el GUID del volumen. Cada filtro de la pila puede usar el control CsvControlSetVolumeId para almacenar el GUID del volumen. Los filtros no deben completar este control. En su lugar, deben permitir que baje la pila, lo que permite que otros filtros tengan la oportunidad de almacenar el GUID.

Requisitos

Requisito Valor
Header ntifs.h

Consulte también

Enumeraciones de administración de archivos

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL