ポイントの再解析操作
ファイル システムが再解析ポイントをサポートしているかどうかを確認するには、GetVolumeInformation 関数を呼び出し、FILE_SUPPORTS_REPARSE_POINTS ビット フラグを調べます。
DeviceIoControl 関数を使用すると、再解析ポイントを設定、変更、取得、および削除できます。 次の表では、DeviceIoControl を使用して実行できる再解析ポイント操作説明します。
操作 | 形容 |
---|---|
FSCTL_SET_REPARSE_POINT | 呼び出し元のプログラムが新しい再解析ポイントを設定したり、既存の再解析ポイントを変更したりできるようにします。 |
FSCTL_GET_REPARSE_POINT | 既存の再解析ポイントに格納されている情報を取得します。 |
FSCTL_DELETE_REPARSE_POINT | 既存の再解析ポイントを削除します。 |
再解析ポイントを変更、取得、または削除する場合は、ファイルに含まれる操作で同じ再解析タグを指定する必要があります。 それ以外の場合、操作はエラー ERROR_REPARSE_TAG_MISMATCHで失敗します。 再解析ポイントを変更または削除する場合は、ファイルに含まれる操作で GUID の再解析も指定する必要があります。 それ以外の場合、操作はエラー ERROR_REPARSE_ATTRIBUTE_CONFLICTで失敗します。
ファイルまたはディレクトリに再解析ポイントが含まれているかどうかを確認するには、GetFileAttributes 関数を使用します。 ファイルまたはディレクトリに再解析ポイントが関連付けられている場合は、FILE_ATTRIBUTE_REPARSE_POINT 属性が設定されます。
ファイルまたはディレクトリへのハンドルをまだ持たずに既存の再解析ポイントを上書きするには、FILE_FLAG_OPEN_REPARSE_POINTで CreateFile呼び出します。 このフラグを使用すると、対応するファイル システム フィルターがインストールされ、正常に動作しているかどうかに関係なく、ファイルを開きます。