enumeração CSV_CONTROL_OP (ntifs.h)
Especifica o tipo de operação de controle CSV (volume compartilhado de cluster) a ser usado com o código de controle 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 o redirecionamento de arquivo CSV. |
CsvControlStopRedirectFile Valor: 0x03 Interrompe o redirecionamento de arquivo CSV. |
CsvControlQueryRedirectState Valor: 0x04 Pesquise por redirecionamento de estado. Quando esse valor é especificado, a estrutura CSV_QUERY_REDIRECT_STATE também deve ser usada. |
CsvControlQueryFileRevision Valor: 0x06 Pesquise revisão de arquivo. Quando esse valor é especificado, a estrutura CSV_QUERY_FILE_REVISION também deve ser usada. |
CsvControlQueryMdsPath Valor: 0x08 Pesquise o caminho do MDS. Quando esse valor é especificado, a estrutura CSV_QUERY_MDS_PATH também deve ser usada. |
CsvControlQueryFileRevisionFileId128 Valor: 0x09 Pesquise revisão de arquivo de 128 bits. Quando esse valor é especificado, a estrutura CSV_QUERY_FILE_REVISION_FILE_ID_128 também deve ser usada. |
CsvControlQueryVolumeRedirectState Valor: 0x0a Pesquise o redirecionamento de estado do volume. Quando esse valor é especificado, a estrutura CSV_QUERY_VOLUME_REDIRECT_STATE também deve ser usada. |
CsvControlEnableUSNRangeModificationTracking Valor: 0x0d Habilitar o rastreamento de intervalo de USN. |
CsvControlMarkHandleLocalVolumeMount Valor: 0x0e Quando um arquivo VHD está prestes a ser montado em loopback, marca um identificador e solicita que o CVSFS falhe e invalide identificadores após um curto tempo limite (atualmente 20 segundos) se nenhuma E/S fizer progresso. |
CsvControlUnmarkHandleLocalVolumeMount Valor: 0x0f Quando um arquivo VHD está prestes a ser desmontado em loopback, o desmarca um identificador que foi marcado anteriormente por CsvControlMarkHandleLocalVolumeMount. |
CsvControlGetCsvFsMdsPathV2 Valor: 0x12 Pesquise a versão 2 do caminho do MDS. Quando esse valor é especificado, a estrutura CSV_QUERY_MDS_PATH_V2 também deve ser usada. |
CsvControlDisableCaching Valor: 0x13 Desabilita o cache do arquivo CSV. |
CsvControlEnableCaching Valor: 0x14 Habilita o cache do arquivo CSV. |
CsvControlStartForceDFO Valor: 0x15 Força o CSVFS a começar a encaminhar o nível inferior de E/S em um DFO (objeto de arquivo de nível inferior). Consulte Comentários para obter detalhes. |
CsvControlStopForceDFO Valor: 0x16 Pare de forçar o encaminhamento de E/S do CSVFS em um DFO. Consulte Comentários para obter detalhes. |
CsvControlQueryMdsPathNoPause Valor: 0x17 Semelhante a CsvControlQueryMdsPath. Pesquise o caminho MDS, mas se o volume CSV estiver em pausa no momento da solicitação, defina MdsNodeId como 0xFFFFFFFF em vez de retornar o último nó coordenado. Isso permite que o cliente detecte que o nó de coordenação pode estar mudando. Quando CsvControlQueryMdsPathNoPause é especificado, a estrutura CSV_QUERY_MDS_PATH também deve ser usada. |
CsvControlSetVolumeId Valor: 0x18 Defina o GUID do volume CSV. Consulte Comentários para obter detalhes. |
CsvControlQueryVolumeId Valor: 0x19 Consulte se o GUID do volume CSV está disponível. Consulte Comentários para obter detalhes. |
Comentários
Uma alternativa para chamar o código de controle FSCTL_CSV_CONTROL com essa enumeração é usar a estrutura CSV_CONTROL_PARAM , que encapsula um membro desse tipo de enumeração.
CsvControlStartForceDFO e CsvControlStopForceDFO
Quando um objeto de arquivo é aberto no CSVFS, o CSVFS abre no sistema de arquivos de nível inferior (NTFS ou REFS) um DFO (objeto de arquivo de nível inferior) correspondente a cada usuário aberto. Esse objeto de arquivo é aberto como parte de um aplicativo abrindo um arquivo no CSVFS e é fechado quando o aplicativo fecha o identificador do objeto de arquivo no CSVFS. Internamente, o CSVFS abre um objeto de arquivo adicional chamado PFO (objeto de arquivo de paginação) que é compartilhado entre todas as aberturas do mesmo arquivo no CSVFS. Por padrão, o CSVFS o usa para muitas operações, como as seguintes:
- Negociação oplock
- Bloqueios de intervalo de bytes
- Encaminhamento de E/S de paginação
Algumas soluções de filtragem podem marcar o identificador de maneira especial e esperar que todas as leituras e gravações sejam encaminhadas para baixo pelo CSVFS no DFO correspondente. Um aplicativo pode forçar o CSVFS a começar a encaminhar o nível inferior de E/S no DFO enviando CsvControlStartForceDFO. Posteriormente, o aplicativo pode usar CsvControlStopForceDFO para reverter ao comportamento padrão. Fechar o identificador que foi usado para enviar CsvControlStartForceDFO reverter implicitamente como se o aplicativo enviasse CsvControlStopForceDFO.
CsvControlSetVolumeId e CsvControlQueryVolumeId
Esses controles permitem que os minifiltros do sistema de arquivos anexados ao sistema de arquivos de nível inferior abaixo do CSVFS aprendam o GUID do volume CSV. O Recurso de Disco Físico do Cluster define esse GUID depois que o sistema de arquivos de nível inferior é montado para que ele não fique disponível se o filtro for anexado durante a montagem. Durante a anexação de filtro, o minifiltro do sistema de arquivos pode emitir CsvControlQueryVolumeId para consultar se o GUID já está disponível. O controle deve ser enviado para a parte superior da pilha para garantir que o csvflt o receba. Se o GUID do volume ainda não estiver disponível, o csvflt retornará STATUS_UNSUCCESSFUL. O filtro não deverá falhar ao ser anexado se o GUID do volume ainda não estiver disponível.
Posteriormente, o Recurso de Disco Físico enviará CsvControlSetVolumeId com o GUID do volume. Cada filtro na pilha pode usar o controle CsvControlSetVolumeId para armazenar o GUID do volume. Os filtros não devem concluir esse controle. Em vez disso, eles devem permitir que ele desça na pilha, permitindo a outros filtros a oportunidade de armazenar o GUID.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | ntifs.h |