Analysieren von Punktvorgängen
Um festzustellen, ob ein Dateisystem Analysepunkte unterstützt, rufen Sie die GetVolumeInformation-Funktion auf, und untersuchen Sie das FILE_SUPPORTS_REPARSE_POINTS Bitflag.
Mit der DeviceIoControl-Funktion können Sie Analysepunkte festlegen, ändern, abrufen und entfernen. In der folgenden Tabelle werden die Analysepunktvorgänge beschrieben, die Sie mit DeviceIoControl ausführen können.
Vorgang | BESCHREIBUNG |
---|---|
FSCTL_SET_REPARSE_POINT | Ermöglicht dem aufrufenden Programm, einen neuen Analysepunkt festzulegen oder einen vorhandenen zu ändern. |
FSCTL_GET_REPARSE_POINT | Ruft die in einem vorhandenen Analysepunkt gespeicherten Informationen ab. |
FSCTL_DELETE_REPARSE_POINT | Entfernt einen vorhandenen Analysepunkt. |
Wenn Sie einen Analysepunkt ändern, abrufen oder löschen, müssen Sie dasselbe Analysetag in dem Vorgang angeben, der in der Datei enthalten ist. Andernfalls schlägt der Vorgang mit dem Fehler ERROR_REPARSE_TAG_MISMATCH fehl. Wenn Sie einen Analysepunkt ändern oder löschen, müssen Sie auch die Analyse-GUID in dem Vorgang angeben, der in der Datei enthalten ist. Andernfalls schlägt der Vorgang mit dem Fehler ERROR_REPARSE_ATTRIBUTE_CONFLICT fehl.
Verwenden Sie die GetFileAttributes-Funktion , um zu bestimmen, ob eine Datei oder ein Verzeichnis einen Analysepunkt enthält. Wenn der Datei oder dem Verzeichnis ein Analysepunkt zugeordnet ist, wird das attribut FILE_ATTRIBUTE_REPARSE_POINT festgelegt.
Um einen vorhandenen Analysepunkt zu überschreiben, ohne bereits über ein Handle für die Datei oder das Verzeichnis zu verfügen, rufen Sie CreateFile mit FILE_FLAG_OPEN_REPARSE_POINT auf. Mit diesem Flag können Sie die Datei öffnen, unabhängig davon, ob der entsprechende Dateisystemfilter installiert ist und ordnungsgemäß funktioniert.