GetFileAttributesTransactedA 函式 (winbase.h)

[Microsoft 強烈建議開發人員利用替代方式來達成應用程式的需求。 許多針對 TxF 開發的案例,都可以透過更簡單且更容易使用的技巧來達成。 此外,未來版本的 Microsoft Windows 可能無法使用 TxF。 如需詳細資訊,以及 TxF 的替代方案,請參閱 使用交易式 NTFS 的替代方案

擷取指定檔案或目錄的檔案系統屬性做為交易作業。

語法

BOOL GetFileAttributesTransactedA(
  [in]  LPCSTR                 lpFileName,
  [in]  GET_FILEEX_INFO_LEVELS fInfoLevelId,
  [out] LPVOID                 lpFileInformation,
  [in]  HANDLE                 hTransaction
);

參數

[in] lpFileName

檔案或目錄的名稱。

根據預設,名稱限制為MAX_PATH個字元。 若要將此限制延伸至 32,767 寬字元,請在路徑前面加上 「\\?\」。 如需詳細資訊,請參閱命名檔案、路徑與命名空間

提示

從 Windows 10 版本 1607 開始,您可以選擇移除MAX_PATH限制,而不需在前面加上 「\\?\」。 如需詳細資訊,請參閱 命名檔案、路徑和命名空間 的一節。

檔案或目錄必須位於本機電腦上;否則,函式會失敗,而且最後一個錯誤碼會設定為 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE

[in] fInfoLevelId

要擷取的屬性資訊層級。

此參數可以是 來自GET_FILEEX_INFO_LEVELS 列舉的下列值。

意義
GetFileExInfoStandard
lpFileInformation參數是WIN32_FILE_ATTRIBUTE_DATA結構。

[out] lpFileInformation

接收屬性資訊的緩衝區指標。

儲存到這個緩衝區的屬性資訊類型取決於 fInfoLevelId的值。 如果 fInfoLevelId 參數是 GetFileExInfoStandard ,則此參數會指向 WIN32_FILE_ATTRIBUTE_DATA 結構

[in] hTransaction

交易的控制碼。 CreateTransaction函式會傳回這個控制碼。

傳回值

如果函式成功,則傳回非零的值。

如果函式失敗,傳回值會是零 (0) 。 若要取得擴充的錯誤資訊,請呼叫 GetLastError

備註

GetFileAttributesTransacted 在掛接的資料夾上呼叫時,它會傳回目錄的屬性,而不是掛接資料夾與目錄建立關聯之磁片區中根目錄的屬性。 若要取得相關聯磁片區的檔案屬性,請呼叫 GetVolumeNameForVolumeMountPoint 以取得相關聯磁片區的名稱。 然後在 GetFileAttributesTransacted的呼叫中使用產生的名稱。 結果為相關聯磁片區上根目錄的屬性。

在Windows 8和Windows Server 2012中,下列技術支援此函式。

技術 支援
伺服器訊息區 (SMB) 3.0 通訊協定 No
SMB 3.0 透明容錯移轉 (TFO) No
具有向外延展檔案共用的 SMB 3.0 (SO) No
叢集共用磁片區檔案系統 (CsvFS) No
彈性檔案系統 (ReFS) No
 

SMB 3.0 不支援 TxF。

符號連結: 如果路徑指向符號連結,函式會傳回符號連結的屬性。

交易作業

如果檔案已開啟以在交易中修改,則除非認可交易,否則沒有其他執行緒可以開啟檔案以進行修改。 相反地,如果檔案在異動外部進行修改,則任何交易執行緒都無法開啟檔案以進行修改,直到非交易控制碼關閉為止。 如果非交易執行緒已開啟控制碼來修改檔案,該檔案的 GetFileAttributesTransacted 呼叫將會失敗,並 發生ERROR_TRANSACTIONAL_CONFLICT 錯誤。

注意

winbase.h 標頭會根據 UNICODE 預處理器常數的定義,將 GetFileAttributesTransacted 定義為別名,自動選取此函式的 ANSI 或 Unicode 版本。 混合使用編碼中性別名與非編碼中性的程式碼,可能會導致編譯或執行時間錯誤不符。 如需詳細資訊,請參閱 函式原型的慣例

規格需求

   
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
最低支援的伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平台 Windows
標頭 winbase.h (包含 Windows.h)
程式庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

DeviceIoControl

檔案屬性常數

檔案管理功能

FindFirstFileTransacted

FindNextFile

GET_FILEEX_INFO_LEVELS

SetFileAttributesTransacted

符號連結

交易式 NTFS