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