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

Confira também

Enumerações de gerenciamento de arquivos

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL