FSCTL_SET_REPARSE_POINT 制御コード
FSCTL_SET_REPARSE_POINT 制御コードは、ファイルまたはディレクトリに再解析ポイントを設定します。
この操作を実行するには、次のパラメーターを指定して ZwFsControlFile を呼び出しします。
ミニフィルターでは、再解析ポイントを設定するために FSCTL_SET_REPARSE_POINT の代わりに FltTagFile を使用する必要があります。
再解析ポイントと FSCTL_SET_REPARSE_POINT 制御コードの詳細については、Microsoft Windows SDK のドキュメントを参照してください。
パラメーター
FileHandle [in]: 再解析ポイントを設定するファイルまたはディレクトリのファイル ハンドル。 このパラメーターは必須であり、NULL にすることはできません。
FsControlCode [in]: 操作の制御コード。 この操作には FSCTL_SET_REPARSE_POINT を使用します。
InputBuffer [in]: 呼び出し元によって割り当てられた、再解析ポイント データを含む REPARSE_GUID_DATA_BUFFER または REPARSE_DATA_BUFFER 構造体へのポインター。 既存の再解析ポイントが変更されている場合、この構造体の ReparseTag メンバーで指定されたタグが、変更対象の再解析ポイントのタグと一致する必要があります。 さらに、再解析ポイントがサード パーティ (Microsoft 以外) の再解析ポイントである場合、REPARSE_GUID_DATA_BUFFER 構造体の ReparseGuid メンバーで指定された GUID が、変更対象の再解析ポイントの GUID と一致する必要があります。
InputBufferLength [in]: InputBuffer パラメーターが指し示すバッファーのサイズ (バイト単位)。 REPARSE_GUID_DATA_BUFFER 構造体の場合、この値は REPARSE_GUID_DATA_BUFFER_HEADER_SIZE にユーザー定義データのサイズを加算した値以上、かつ MAXIMUM_REPARSE_DATA_BUFFER_SIZE 以下である必要があります。 REPARSE_DATA_BUFFER 構造体の場合、この値は REPARSE_DATA_BUFFER_HEADER_SIZE にユーザー定義データのサイズを加算した値以上、かつ MAXIMUM_REPARSE_DATA_BUFFER_SIZE 以下である必要があります。
OutputBuffer [out]: この操作では使用されません。NULL に設定します。
OutputBufferLength [out]: この操作では使用されません。0 に設定します。
ステータスブロック
ZwFsControlFile は、STATUS_SUCCESS または次のいずれかのような、適切な NTSTATUS 値を返します。
コード | 意味 |
---|---|
STATUS_DIRECTORY_NOT_EMPTY | 空でないディレクトリに再解析ポイントを設定することはできません。 これはエラー コードです。 |
STATUS_EAS_NOT_SUPPORTED | この要求がトランザクション内にある場合、ファイルに再解析ポイントを設定することはできません。 これはエラー コードです。 |
STATUS_IO_REPARSE_DATA_INVALID | 指定されたパラメーター値の 1 つが無効です。 これはエラー コードです。 |
STATUS_IO_REPARSE_TAG_MISMATCH | 呼び出し元によって指定された再解析タグが、変更対象の再解析ポイントのタグと一致しませんでした。 これはエラー コードです。 |
STATUS_NOT_A_REPARSE_POINT | このファイルまたはディレクトリは、再解析ポイントではありません。 これはエラー コードです。 |
STATUS_REPARSE_ATTRIBUTE_CONFLICT | 再解析ポイントがサード パーティの再解析ポイントで、呼び出し元によって指定された再解析 GUID が、変更対象の再解析ポイントの GUID と一致しませんでした。 これはエラー コードです。 |
要件
要件タイプ | 要件 |
---|---|
ヘッダー | Ntifs.h (Ntifs.h または Fltkernel.h を含む) |