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 |