enumerazione CSV_CONTROL_OP (ntifs.h)

Specifica il tipo di operazione di controllo del volume condiviso del cluster da usare con il codice di controllo FSCTL_CSV_CONTROL .

Sintassi

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;

Costanti

 
CsvControlStartRedirectFile
Valore: 0x02
Avvia il reindirizzamento di file CSV.
CsvControlStopRedirectFile
Valore: 0x03
Arresta il reindirizzamento di file CSV.
CsvControlQueryRedirectState
Valore: 0x04
Cercare il reindirizzamento dello stato. Quando viene specificato questo valore, è necessario usare anche la struttura CSV_QUERY_REDIRECT_STATE .
CsvControlQueryFileRevision
Valore: 0x06
Cercare la revisione del file. Quando questo valore viene specificato, è necessario usare anche la struttura CSV_QUERY_FILE_REVISION .
CsvControlQueryMdsPath
Valore: 0x08
Cercare il percorso MDS. Quando viene specificato questo valore, è necessario usare anche la struttura CSV_QUERY_MDS_PATH .
CsvControlQueryFileRevisionFileId128
Valore: 0x09
Cercare la revisione del file a 128 bit. Quando viene specificato questo valore, è necessario usare anche la struttura CSV_QUERY_FILE_REVISION_FILE_ID_128.
CsvControlQueryVolumeRedirectState
Valore: 0x0a
Cercare il reindirizzamento dello stato del volume. Quando viene specificato questo valore, è necessario usare anche la struttura CSV_QUERY_VOLUME_REDIRECT_STATE.
CsvControlEnableUSNRangeModificationTracking
Valore: 0x0d
Abilitare il rilevamento dell'intervallo USN.
CsvControlMarkHandleLocalVolumeMount
Valore: 0x0e
Quando un file VHD sta per essere montato in loopback, contrassegna un handle e richiede che CVSFS non riesca i/O e invalidi i handle dopo un breve timeout (attualmente 20 secondi) se non viene eseguito alcun avanzamento di I/Os.
CsvControlUnmarkHandleLocalVolumeMount
Valore: 0x0f
Quando un file VHD sta per essere smontato, deselezionare un handle contrassegnato in precedenza da CsvControlMarkHandleLocalVolumeMount.
CsvControlGetCsvFsMdsPathV2
Valore: 0x12
Cercare la versione 2 del percorso MDS. Quando viene specificato questo valore, è necessario usare anche la struttura CSV_QUERY_MDS_PATH_V2.
CsvControlDisableCaching
Valore: 0x13
Disabilita la memorizzazione nella cache del file CSV.
CsvControlEnableCaching
Valore: 0x14
Abilita la memorizzazione nella cache del file CSV.
CsvControlStartForceDFO
Valore: 0x15
Forza CSVFS ad avviare l'inoltro a livello inferiore di I/O su un oggetto file a livello inferiore (DFO). Per ulteriori informazioni, vedere Note.
CsvControlStopForceDFO
Valore: 0x16
Arrestare l'inoltro di CSVFS in un DFO. Per ulteriori informazioni, vedere Note.
CsvControlQueryMdsPathNoPause
Valore: 0x17
Simile a CsvControlQueryMdsPath. Cercare il percorso MDS, ma se il volume CSV viene sospeso al momento della richiesta, impostare MdsNodeId su 0xFFFFFFFF anziché restituire l'ultimo nodo di coordinamento. Ciò consente al client di rilevare che il nodo di coordinamento potrebbe cambiare. Quando viene specificato CsvControlQueryMdsPathNoPause, è necessario usare anche la struttura CSV_QUERY_MDS_PATH .
CsvControlSetVolumeId
Valore: 0x18
Impostare il GUID del volume CSV. Per ulteriori informazioni, vedere Note.
CsvControlQueryVolumeId
Valore: 0x19
Verificare se il GUID del volume CSV è disponibile. Per ulteriori informazioni, vedere Note.

Commenti

Un'alternativa alla chiamata al codice di controllo FSCTL_CSV_CONTROL con questa enumerazione consiste nell'usare la struttura CSV_CONTROL_PARAM , che incapsula un membro di questo tipo di enumerazione.

CsvControlStartForceDFO e CsvControlStopForceDFO

Quando un oggetto file viene aperto in CSVFS, CSVFS viene aperto nel file system a livello inferiore (NTFS o REFS) che corrisponde a ogni utente aperto. Tale oggetto file viene aperto come parte di un'applicazione che apre un file in CSVFS e viene chiuso quando l'applicazione chiude l'handle per l'oggetto file in CSVFS. Internamente CSVFS apre un oggetto file aggiuntivo denominato oggetto file di paging (PFO) condiviso tra tutti gli elementi aperti dello stesso file in CSVFS. Per impostazione predefinita, CSVFS lo usa per molte operazioni, ad esempio quanto segue:

  • Negoziazione di oplock
  • Blocchi dell'intervallo di byte
  • Inoltro dell'I/O di paging

Alcune soluzioni di filtro possono contrassegnare l'handle in modo speciale e quindi aspettarsi che tutte le letture e le scritture vengano inoltrate a livello inferiore da CSVFS nella DFO corrispondente. Un'applicazione può forzare CSVFS ad avviare l'inoltro di I/O a livello inferiore in DFO inviando CsvControlStartForceDFO. Più avanti, l'applicazione può usare CsvControlStopForceDFO per ripristinare il comportamento predefinito. Chiudere l'handle usato per inviare CsvControlStartForceDFO restituirà in modo implicito come se l'applicazione ha inviato CsvControlStopForceDFO.

CsvControlSetVolumeId e CsvControlQueryVolumeId

Questi controlli consentono minifiltri del file system collegati al file system a livello inferiore sotto CSVFS per apprendere il GUID del volume CSV. La risorsa disco fisico cluster imposta questo GUID dopo che il file system a livello inferiore viene montato in modo che non sia disponibile se il filtro si collega durante il montaggio. Durante il collegamento del filtro, il minifiltro del file system può inviare csvControlQueryVolumeId per eseguire query se il GUID è già disponibile. Il controllo deve essere inviato all'inizio dello stack per assicurarsi che csvflt lo riceva. Se il GUID del volume non è ancora disponibile, csvflt restituirà STATUS_UNSUCCESSFUL. Il filtro non deve essere collegato se il GUID del volume non è ancora disponibile.

In un secondo momento, la risorsa disco fisico invierà CsvControlSetVolumeId con il GUID del volume. Ogni filtro nello stack può usare il controllo CsvControlSetVolumeId per archiviare il GUID del volume. I filtri non devono completare questo controllo. Invece, dovrebbero consentire il passaggio dello stack, consentendo ad altri filtri l'opportunità di archiviare il GUID.

Requisiti

Requisito Valore
Intestazione ntifs.h

Vedi anche

Enumerazioni gestione file

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL