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.