共用方式為


FSCTL_SET_REPARSE_POINT控件程式代碼

FSCTL_SET_REPARSE_POINT控件程式代碼會在檔案或目錄上設定重新分析點。

若要執行這項作業,請使用下列參數呼叫 ZwFsControlFile

Minifilters 應該使用 FltTagFile 而不是FSCTL_SET_REPARSE_POINT來設定重新分析點。

如需重新分析點和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) 重新分析點的第三方 (,則結構之 ReparseGuid 成員中指定的 GUID 必須是REPARSE_GUID_DATA_BUFFER結構必須符合要修改之重新分析點的 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]: 未搭配此作業使用;設定為零。

狀態區塊

ZwFsControlFile 會傳回STATUS_SUCCESS或適當的 NTSTATUS 值,例如下列其中一項:

程式碼 意義
STATUS_DIRECTORY_NOT_EMPTY 無法在無空目錄上設定重新分析點。 這是錯誤碼。
STATUS_EAS_NOT_SUPPORTED 如果此要求位於交易中,就無法在檔案上設定重新分析點。 這是錯誤碼。
STATUS_IO_REPARSE_DATA_INVALID 其中一個指定的參數值無效。 這是錯誤碼。
STATUS_IO_REPARSE_TAG_MISMATCH 呼叫端指定的重新分析標籤。 這是錯誤碼。
STATUS_NOT_A_REPARSE_POINT 檔案或目錄不是重新分析點。 這是錯誤碼。
STATUS_REPARSE_ATTRIBUTE_CONFLICT 重新分析點是第三方重新分析點,而呼叫端指定的重新分析 GUID 與要修改之重新分析點的 GUID 不符。 這是錯誤碼。

規格需求

需求類型 需求
標頭 Ntifs.h (包含 Ntifs.hFltkernel.h)

另請參閱

IRP_MJ_FILE_SYSTEM_CONTROL的 FLT_PARAMETERS

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_GET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile