Partilhar via


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

Consulte 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