Freigeben über


CSV_CONTROL_OP-Enumeration (ntifs.h)

Gibt den Typ des CSV-Steuerungsvorgangs (Cluster Shared Volume) an, der mit dem FSCTL_CSV_CONTROL-Steuerelementcode verwendet werden soll.

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;

Konstanten

 
CsvControlStartRedirectFile
Wert: 0x02
Startet die CSV-Dateiumleitung.
CsvControlStopRedirectFile
Wert: 0x03
Beendet die CSV-Dateiumleitung.
CsvControlQueryRedirectState
Wert: 0x04
Suchen Sie nach Statusumleitung. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_REDIRECT_STATE-Struktur verwendet werden.
CsvControlQueryFileRevision
Wert: 0x06
Suchen Sie nach Dateirevision. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_FILE_REVISION-Struktur verwendet werden.
CsvControlQueryMdsPath
Wert: 0x08
Suchen Sie nach MDS-Pfad. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_MDS_PATH-Struktur verwendet werden.
CsvControlQueryFileRevisionFileId128
Wert: 0x09
Suchen Sie nach einer 128-Bit-Dateirevision. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_FILE_REVISION_FILE_ID_128-Struktur verwendet werden.
CsvControlQueryVolumeRedirectState
Wert: 0x0a
Suchen Sie nach Volumestatusumleitung. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_VOLUME_REDIRECT_STATE-Struktur verwendet werden.
CsvControlEnableUSNRangeModificationTracking
Wert: 0x0d
Aktivieren Sie die USN-Bereichsnachverfolgung.
CsvControlMarkHandleLocalVolumeMount
Wert: 0x0e
Wenn eine VHD-Datei eingebunden werden soll, markiert ein Handle und fordert an, dass CVSFS nach einem kurzen Timeout (derzeit 20 Sekunden) fehlschlägt, wenn keine E/A-Vorgänge ausgeführt werden.
CsvControlUnmarkHandleLocalVolumeMount
Wert: 0x0f
Wenn die Bereitstellung einer VHD-Datei aufgehoben wird, hebt die Markierung eines Handles auf, das zuvor von CsvControlMarkHandleLocalVolumeMount gekennzeichnet wurde.
CsvControlGetCsvFsMdsPathV2
Wert: 0x12
Suchen Sie nach Version 2 des MDS-Pfads. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_MDS_PATH_V2-Struktur verwendet werden.
CsvControlDisableCaching
Wert: 0x13
Deaktiviert die Zwischenspeicherung der CSV-Datei.
CsvControlEnableCaching
Wert: 0x14
Aktiviert das Zwischenspeichern der CSV-Datei.
CsvControlStartForceDFO
Wert: 0x15
Erzwingt, dass CSVFS mit der Weiterleitung von E/A-Vorgängen in einem down-level File Object (DFO) beginnt. Einzelheiten finden Sie in den Hinweisen.
CsvControlStopForceDFO
Wert: 0x16
Beenden Sie das Erzwingen der Weiterleitung von E/A durch CSVFS auf einem DFO. Einzelheiten finden Sie in den Hinweisen.
CsvControlQueryMdsPathNoPause
Wert: 0x17
Ähnlich wie CsvControlQueryMdsPath. Suchen Sie nach MDS-Pfad, aber wenn das CSV-Volume zum Zeitpunkt der Anforderung angehalten ist, legen Sie MdsNodeId auf 0xFFFFFFFF fest, anstatt den letzten koordinierenden Knoten zurückzugeben. Dadurch kann der Client erkennen, dass sich der koordinierende Knoten möglicherweise ändert. Wenn CsvControlQueryMdsPathNoPause angegeben wird, muss auch die CSV_QUERY_MDS_PATH-Struktur verwendet werden.
CsvControlSetVolumeId
Wert: 0x18
Legen Sie die CSV-Volume-GUID fest. Einzelheiten finden Sie in den Hinweisen.
CsvControlQueryVolumeId
Wert: 0x19
Fragen Sie ab, ob die CSV-Volume-GUID verfügbar ist. Einzelheiten finden Sie in den Hinweisen.

Hinweise

Eine Alternative zum Aufrufen des FSCTL_CSV_CONTROL-Steuerelementcodes mit dieser Enumeration ist die Verwendung der CSV_CONTROL_PARAM-Struktur , die einen Member dieses Enumerationstyps kapselt.

CsvControlStartForceDFO und CsvControlStopForceDFO

Wenn ein Dateiobjekt in CSVFS geöffnet wird, öffnet CSVFS im down-level File System (NTFS oder REFS) ein down-level File Object (DFO), das jedem geöffneten Benutzer entspricht. Dieses Dateiobjekt wird als Teil einer Anwendung geöffnet, die eine Datei in CSVFS öffnet, und wird geschlossen, wenn die Anwendung das Handle für das Dateiobjekt in CSVFS schließt. Intern öffnet CSVFS ein zusätzliches Dateiobjekt namens Paging File Object (PFO), das für alle Geöffnete derselben Datei in CSVFS freigegeben wird. Standardmäßig verwendet CSVFS sie für viele Vorgänge, z. B. die folgenden:

  • Oplock-Aushandlung
  • Bytebereichssperren
  • Weiterleitung von Paging-E/A

Einige Filterlösungen markieren das Handle möglicherweise auf besondere Weise und erwarten dann, dass alle Lese- und Schreibvorgänge von CSVFS auf der entsprechenden DFO-Ebene weitergeleitet werden. Eine Anwendung kann erzwingen, dass CSVFS mit der Weiterleitung von E/A auf down-Level auf DFO beginnt, indem csvControlStartForceDFO gesendet wird. Später kann die Anwendung CsvControlStopForceDFO verwenden, um das Standardverhalten zu rückgängig machen. Das Schließen des Handles, das zum Senden von CsvControlStartForceDFO verwendet wurde, rückgängig machen implizit zurück, als ob die Anwendung CsvControlStopForceDFO gesendet hätte.

CsvControlSetVolumeId und CsvControlQueryVolumeId

Mit diesen Steuerelementen können Dateisystem-Minifilter, die an das untere Dateisystem unterhalb von CSVFS angefügt sind, die CSV-Volume-GUID erlernen. Die Physische Clusterdatenträgerressource legt diese GUID fest, nachdem das down-level-Dateisystem eingebunden wurde, sodass sie nicht verfügbar ist, wenn der Filter während der Einbindung angefügt wird. Während der Filteranfügung kann der Dateisystemminifilter CsvControlQueryVolumeId ausgeben, um abzufragen, ob die GUID bereits verfügbar ist. Das Steuerelement muss an den Anfang des Stapels gesendet werden, um sicherzustellen, dass csvflt es empfängt . Wenn die Volume-GUID noch nicht verfügbar ist, gibt csvflt STATUS_UNSUCCESSFUL zurück. Der Filter sollte nicht anfügen, wenn die Volume-GUID noch nicht verfügbar ist.

Zu einem späteren Zeitpunkt sendet die Ressource für physische Datenträger CsvControlSetVolumeId mit der Volume-GUID. Jeder Filter im Stapel kann das CsvControlSetVolumeId-Steuerelement verwenden, um die Volume-GUID zu speichern. Filter dürfen dieses Steuerelement nicht abschließen. Stattdessen sollten sie zulassen, dass sie den Stapel heruntergeht, sodass andere Filter die Möglichkeit haben, die GUID zu speichern.

Anforderungen

Anforderung Wert
Header ntifs.h

Weitere Informationen

Enumerationen in der Dateiverwaltung

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL