Reparse Point Operations

Um zu ermitteln, ob ein Dateisystem Reparsepunkte unterstützt, rufen Sie die GetVolumeInformation-Funktion auf, und untersuchen Sie das FILE_SUPPORTS_REPARSE_POINTS Bit-Flag.

Mit der DeviceIoControl-Funktion können Sie Reparsepunkte festlegen, ändern, abrufen und entfernen. In der folgenden Tabelle werden die Reparsepunktvorgänge beschrieben, die Sie mithilfe von DeviceIoControl ausführen können.

Vorgang BESCHREIBUNG
FSCTL_SET_REPARSE_POINT Ermöglicht dem aufrufenden Programm, einen neuen Analysepunkt festzulegen oder eine vorhandene zu ändern.
FSCTL_GET_REPARSE_POINT Ruft die in einem vorhandenen Reparsepunkt gespeicherten Informationen ab.
FSCTL_DELETE_REPARSE_POINT Entfernt einen vorhandenen Reparsepunkt.

Wenn Sie einen Analysepunkt ändern, abrufen oder löschen, müssen Sie dasselbe Reparse-Tag 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 REparse-GUID in dem Vorgang angeben, der in der Datei enthalten ist. Andernfalls schlägt der Vorgang mit dem Fehler ERROR_REPARSE_ATTRIBUTE_CONFLICT fehl.

Um zu bestimmen, ob eine Datei oder ein Verzeichnis einen Analysepunkt enthält, verwenden Sie die GetFileAttributes-Funktion . Wenn die Datei oder das Verzeichnis einen zugeordneten Analysepunkt aufweist, wird das FILE_ATTRIBUTE_REPARSE_POINT-Attribut festgelegt.

Rufen Sie CreateFile mit FILE_FLAG_OPEN_REPARSE_POINT auf, um einen vorhandenen Reparsepunkt zu überschreiben, ohne dass bereits ein Handle für die Datei oder das Verzeichnis vorhanden ist. Mit diesem Flag können Sie die Datei öffnen, ob der entsprechende Dateisystemfilter installiert ist und ordnungsgemäß funktioniert.