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
Stoppt die CSV-Dateiumleitung.
CsvControlQueryRedirectState
Wert: 0x04
Suchen Sie nach Zustandsumleitung. 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 volume state redirection. Wenn dieser Wert angegeben wird, muss auch die CSV_QUERY_VOLUME_REDIRECT_STATE Struktur verwendet werden.
CsvControlEnableUSNRangeModificationTracking
Wert: 0x0d
Aktivieren Sie die USN-Bereichsverfolgung.
CsvControlMarkHandleLocalVolumeMount
Wert: 0x0e
Wenn eine VHD-Datei zur Bereitstellung von Loopbacks bereitstehen soll, markiert sie ein Handle und fordert an, dass CVSFS I/Os fehlschlägt und Handles nach einem kurzen Timeout (derzeit 20 Sekunden) ungültig macht, wenn keine E/A-Datei fortschritte macht.
CsvControlUnmarkHandleLocalVolumeMount
Wert: 0x0f
Wenn eine VHD-Datei gerade nicht bereitgestellt werden soll, heben Sie ein Handle auf, das zuvor von CsvControlMarkHandleLocalVolumeMountmarkiert 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 das Zwischenspeichern der CSV-Datei.
CsvControlEnableCaching
Wert: 0x14
Aktiviert das Zwischenspeichern der CSV-Datei.
CsvControlStartForceDFO
Wert: 0x15
Erzwingt CSVFS, die Weiterleitung der E/A-Abwärtsebene für ein Down-Level-Dateiobjekt (Down-Level File Object, DFO) zu starten. Ausführliche Informationen finden Sie in den Hinweisen.
CsvControlStopForceDFO
Wert: 0x16
Beenden Sie das Erzwingen der Weiterleitung von E/A von CSVFS auf einem DFO. Ausführliche Informationen 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 wird, 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 GUID des CSV-Volumes fest. Ausführliche Informationen finden Sie in den Hinweisen.
CsvControlQueryVolumeId
Wert: 0x19
Fragen Sie ab, ob die CSV-Volume-GUID verfügbar ist. Ausführliche Informationen finden Sie in den Hinweisen.

Bemerkungen

Eine Alternative zum Aufrufen des FSCTL_CSV_CONTROL-Steuerelementcodes mit dieser Enumeration besteht darin, die CSV_CONTROL_PARAM Struktur zu verwenden, die ein Element dieses Enumerationstyps kapselt.

CsvControlStartForceDFO und CsvControlStopForceDFO

Wenn ein Dateiobjekt auf CSVFS geöffnet wird, wird CSVFS im Dateisystem (DOWN-Level File System, NTFS oder REFS) mit einem DFO (Down-Level File Object) geöffnet, das jedem geöffneten Benutzer entspricht. Dieses Dateiobjekt wird als Teil einer Anwendung geöffnet, die eine Datei auf CSVFS öffnet und geschlossen wird, 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öffneten derselben Datei auf CSVFS freigegeben ist. Standardmäßig verwendet CSVFS sie für viele Vorgänge, z. B. folgendes:

  • Oplock-Aushandlung
  • Bytebereichssperren
  • Weiterleitung der Auslagerungs-E/A

Einige Filterlösungen markieren den Handle möglicherweise auf besondere Weise und erwarten dann, dass alle Lese- und Schreibvorgänge von CSVFS auf dem entsprechenden DFO nach unten weitergeleitet werden sollen. Eine Anwendung kann csvFS erzwingen, die Weiterleitung von E/A-Down-Level auf DFO zu starten, indem CsvControlStartForceDFO-gesendet wird. Später kann die Anwendung CsvControlStopForceDFO- verwenden, um auf das Standardverhalten zurückgesetzt zu werden. Das Schließen des Handles, das zum Senden CsvControlStartForceDFO- verwendet wurde, wird implizit wiederhergestellt, als ob die Anwendung CsvControlStopForceDFO-gesendet wurde.

CsvControlSetVolumeId und CsvControlQueryVolumeId

Diese Steuerelemente ermöglichen Dateisystem-Minifiltern, die an das Dateisystem unter CSVFS angefügt sind, um die CSV-Volume-GUID kennenzulernen. Die Ressource für physische Clusterdatenträger legt diese GUID nach der Bereitstellung des Dateisystems auf der unteren Ebene fest, sodass sie nicht verfügbar ist, wenn der Filter während der Bereitstellung angefügt wird. Während der Filteranfügung kann der Dateisystem-Minifilter 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 empfängt. Wenn die Volume-GUID noch nicht verfügbar ist, gibt csvflt- STATUS_UNSUCCESSFUL zurück. Der Filter sollte nicht angefügt werden, wenn die Volume-GUID noch nicht verfügbar ist.

Zu einem späteren Zeitpunkt sendet die Physische Datenträgerressource 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 der Stapel heruntergeht, sodass andere Filter die Möglichkeit haben, die GUID zu speichern.

Anforderungen

Anforderung Wert
Header- ntifs.h

Siehe auch

Dateiverwaltungsaufzählungen

CSV_CONTROL_PARAM

CSV_QUERY_FILE_REVISION

CSV_QUERY_MDS_PATH

CSV_QUERY_REDIRECT_STATE

FSCTL_CSV_CONTROL