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 |