共用方式為


CreateHardLinkTransactedA 函式 (winbase.h)

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

建立現有檔案與新檔案之間的硬式連結,做為交易作業。 只有 NTFS 檔案系統才支援此函式,而僅適用於檔案,而非目錄。

語法

BOOL CreateHardLinkTransactedA(
  [in] LPCSTR                lpFileName,
  [in] LPCSTR                lpExistingFileName,
       LPSECURITY_ATTRIBUTES lpSecurityAttributes,
  [in] HANDLE                hTransaction
);

參數

[in] lpFileName

新檔案的名稱。

此參數無法指定目錄的名稱。

[in] lpExistingFileName

現有檔案的名稱。

此參數無法指定目錄的名稱。

lpSecurityAttributes

保留;必須 NULL

[in] hTransaction

交易的句柄。 此句柄是由 createTransaction 函式 傳回。

傳回值

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

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

使用此函式建立的硬式連結數目上限是每個檔案 1023 個。 如果為檔案建立超過1023個連結,則會產生錯誤。

檔案必須位於本機計算機上;否則,函式會失敗,且最後一個錯誤碼會設定為 ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE

言論

使用 CreateFileTransactedCreateHardLinkTransacted 建立之檔案的任何目錄專案,都是關聯檔案的硬式連結。 使用 CreateHardLinkTransacted 函式所建立的額外硬連結,可讓您擁有檔案的多個目錄專案,也就是相同檔案的多個硬式連結,這可以是相同目錄中的不同名稱,或是不同目錄中的相同或不同名稱。 不過,檔案的所有硬式連結都必須位於相同的磁碟區上。

因為硬式連結只是檔案的目錄專案,因此當應用程式透過任何硬式連結修改檔案時,所有使用檔案任何其他硬連結的應用程式都會看到變更。 此外,如果檔案變更,則會更新所有目錄專案。 例如,如果檔案大小變更,則檔案的所有硬式鏈接都會顯示新的檔案大小。

安全性描述元屬於硬式連結所指向的檔案。 連結本身只是目錄專案,而且沒有安全性描述元。 因此,當您變更硬式連結的安全性描述元時,您會變更基礎檔案的安全性描述元,以及指向檔案的所有硬式連結都允許新指定的存取。 您無法根據每個硬式連結提供不同的安全性描述項。

此函式不會修改要連結之檔案的安全性描述元,即使安全性描述項資訊是在 lpSecurityAttributes 參數中傳遞也一樣。

使用 DeleteFileTransacted 刪除硬式連結。 不論建立的順序為何,您都可以依任何順序刪除它們。

CreateFileTransacted 中指定之旗標、屬性、存取和共用會以個別檔案為基礎運作。 也就是說,如果您開啟不允許共用的檔案,另一個應用程式就無法藉由建立檔案的新硬式連結來共用檔案。

當您在NTFS文件系統上建立硬式連結時,只有在開啟檔案時,才會重新整理目錄專案中的檔案屬性資訊,或是 使用特定檔案的句柄呼叫 getFileInformationByHandle 時。

符號連結:如果路徑指向符號連結,函式會建立目標的硬連結。

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

科技 支援
伺服器消息塊 (SMB) 3.0 通訊協定
SMB 3.0 透明故障轉移 (TFO)
具有向外延展檔案共用的SMB 3.0(SO)
叢集共用磁碟區檔案系統 (CsvFS)
復原檔案系統 (ReFS)
 

請注意,SMB 3.0 不支援 TxF。

注意

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

要求

要求 價值
最低支援的用戶端 Windows Vista [僅限傳統型應用程式]
支援的最低伺服器 Windows Server 2008 [僅限傳統型應用程式]
目標平臺 窗戶
標頭 winbase.h (包括 Windows.h)
連結庫 Kernel32.lib
DLL Kernel32.dll

另請參閱

CreateFileTransacted

DeleteFileTransacted

檔案管理功能

硬連結和接合

符號連結

交易式NTFS