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 |