CSV_CONTROL_OP enumeração (ntifs.h)
Especifica o tipo de operação de controle CSV (volume compartilhado de cluster) a ser usada com o código de controle FSCTL_CSV_CONTROL.
Sintaxe
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 o redirecionamento de estado. Quando esse valor é especificado, a estrutura CSV_QUERY_REDIRECT_STATE também deve ser usada. |
CsvControlQueryFileRevision Valor: 0x06 Procure 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 a 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 controle de intervalo 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, unmarks um identificador que tinha sido 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 objeto de arquivo de nível inferior (DFO). 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 do MDS, mas se o volume CSV estiver em pausa no momento da solicitação, defina MdsNodeId para 0xFFFFFFFF em vez de retornar o último nó de coordenação. Isso permite que o cliente detecte que o nó de coordenação pode estar mudando. Quando CsvControlQueryMdsPathNoPause é especificada, a estrutura CSV_QUERY_MDS_PATH também deve ser usada. |
CsvControlSetVolumeId Valor: 0x18 Defina o GUID de Volume CSV. Consulte Comentários para obter detalhes. |
CsvControlQueryVolumeId Valor: 0x19 Consulte se o GUID de Volume CSV está disponível. Consulte Comentários para obter detalhes. |
Observações
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 é aberto no sistema de arquivos de nível inferior (NTFS ou REFS) um objeto de arquivo de nível inferior (DFO) 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 a seguinte:
- Negociação do 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 para o comportamento padrão. Fechar o identificador usado para enviar CsvControlStartForceDFO será revertido implicitamente como se o aplicativo enviado 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 de 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 esteja disponível se o filtro for anexado durante a montagem. Durante a anexação do 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 csvflt o receba. Se o GUID de volume ainda não estiver disponível, csvflt retornará STATUS_UNSUCCESSFUL. O filtro não deverá falhar ao ser anexado se o GUID de volume ainda não estiver disponível.
Posteriormente, o Recurso de Disco Físico enviará CsvControlSetVolumeId com o GUID de volume. Cada filtro na pilha pode usar o controle CsvControlSetVolumeId para armazenar o GUID de volume. Os filtros não devem concluir esse controle. Em vez disso, eles devem permitir que ele desça na pilha, permitindo que outros filtros a oportunidade de armazenar o GUID.
Requisitos
Requisito | Valor |
---|---|
cabeçalho | ntifs.h |