FSCTL_GET_REPARSE_POINT控件程式代碼

FSCTL_GET_REPARSE_POINT控件程式代碼會擷取與指定檔案或目錄相關聯的重新分析點數據。

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

如需重新分析點和FSCTL_GET_REPARSE_POINT控件程式代碼的詳細資訊,請參閱 Microsoft Windows SDK 檔。

參數

  • FileObject [in]: 僅限 FltFsControlFile 。 要從中擷取重新分析點數據的檔案或目錄的檔案物件指標。 這個參數是必要的,而且不能是 NULL

  • FileHandle [in]: 僅限 ZwFsControlFile 。 要從中擷取重新分析點數據的檔案或目錄的檔案句柄。 這個參數是必要的,而且不能是 NULL

  • FsControlCode [in]:作業的控制程序代碼。 針對此作業使用 FSCTL_GET_REPARSE_POINT

  • InputBuffer [in]: 未搭配此作業使用;設定為 NULL

  • InputBufferLength [in]: 未搭配此作業使用;設定為零。

  • OutputBuffer [out]:接收重新分析點數據的呼叫端配置 REPARSE_GUID_DATA_BUFFERREPARSE_DATA_BUFFER 結構的指標。

  • OutputBufferLength [out]: OutputBuffer 參數所指向緩衝區的大小,以位元組為單位。 位元組數目的計算方式如下:

    結構 OutputBufferLength
    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。

狀態區塊

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

程式碼 意義
STATUS_BUFFER_OVERFLOW OutputBuffer 參數指向的緩衝區夠大,足以保存REPARSE_GUID_DATA_BUFFER或REPARSE_DATA_BUFFER結構的固定部分,但不是使用者定義的數據。 在此情況下, OutputBufferLength 位元組只會在 OutputBuffer 緩衝區中傳回。 FltFsControlFileLengthReturned 參數會接收傳回之數據的實際長度,以位元組為單位。 這是警告碼。
STATUS_BUFFER_TOO_SMALL OutputBuffer 指向的緩衝區小於 sizeof(REPARSE_GUID_DATA_BUFFER) ,而且不足以保存重新分析點數據。 FltFsControlFileLengthReturned 參數 (或 IoStatus 參數的 Information 成員至 ZwFsControlFile) 接收所需的緩衝區大小。 在此情況下,不會傳回任何重新分析點數據。 這是錯誤碼。
STATUS_IO_REPARSE_DATA_INVALID 其中一個指定的參數值無效。 這是錯誤碼。
STATUS_NOT_A_REPARSE_POINT 檔案或目錄不是重新分析點。 這是錯誤碼。

規格需求

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

另請參閱

FLT_CALLBACK_DATA

IRP_MJ_FILE_SYSTEM_CONTROL的 FLT_PARAMETERS

FLT_TAG_DATA_BUFFER

FltFsControlFile

FltTagFile

FltUntagFile

FSCTL_DELETE_REPARSE_POINT

FSCTL_SET_REPARSE_POINT

IRP_MJ_FILE_SYSTEM_CONTROL

IsReparseTagMicrosoft

IsReparseTagNameSurrogate

REPARSE_DATA_BUFFER

REPARSE_GUID_DATA_BUFFER

ZwFsControlFile