Fungsi CreateHardLinkTransactedA (winbase.h)

[Microsoft sangat menyarankan pengembang menggunakan cara alternatif untuk mencapai kebutuhan aplikasi Anda. Banyak skenario yang dikembangkan TxF dapat dicapai melalui teknik yang lebih sederhana dan lebih tersedia. Selain itu, TxF mungkin tidak tersedia di versi Microsoft Windows yang akan datang. Untuk informasi lebih lanjut, dan alternatif TxF, silakan lihat Alternatif untuk menggunakan Transactional NTFS.]

Membuat tautan keras antara file yang ada dan file baru sebagai operasi yang ditransaksikan. Fungsi ini hanya didukung pada sistem file NTFS, dan hanya untuk file, bukan direktori.

Sintaks

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

Parameter

[in] lpFileName

Nama file baru.

Parameter ini tidak dapat menentukan nama direktori.

[in] lpExistingFileName

Nama file yang ada.

Parameter ini tidak dapat menentukan nama direktori.

lpSecurityAttributes

Dipesan; harus NULL.

[in] hTransaction

Handel ke transaksi. Handel ini dikembalikan oleh fungsi CreateTransaction .

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan bukan nol.

Jika fungsi gagal, nilai yang dikembalikan adalah nol (0). Untuk mendapatkan informasi kesalahan yang diperluas, hubungi GetLastError.

Jumlah maksimum tautan keras yang dapat dibuat dengan fungsi ini adalah 1023 per file. Jika lebih dari 1023 tautan dibuat untuk file, akan terjadi kesalahan.

File harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.

Keterangan

Setiap entri direktori untuk file yang dibuat dengan CreateFileTransacted atau CreateHardLinkTransacted adalah tautan keras ke file terkait. Tautan keras tambahan yang dibuat dengan fungsi CreateHardLinkTransacted memungkinkan Anda memiliki beberapa entri direktori untuk file, yaitu beberapa tautan keras ke file yang sama, yang dapat menjadi nama yang berbeda dalam direktori yang sama, atau nama yang sama atau berbeda di direktori yang berbeda. Namun, semua tautan keras ke file harus berada pada volume yang sama.

Karena tautan keras hanya entri direktori untuk file, ketika aplikasi memodifikasi file melalui tautan keras apa pun, semua aplikasi yang menggunakan tautan keras lainnya ke file melihat perubahan. Selain itu, semua entri direktori diperbarui jika file berubah. Misalnya, jika ukuran file berubah, semua tautan keras ke file menunjukkan ukuran file baru.

Deskriptor keamanan milik file tempat hard link menunjuk. Tautan itu sendiri hanya entri direktori, dan tidak memiliki deskriptor keamanan. Oleh karena itu, ketika Anda mengubah pendeskripsi keamanan dari tautan keras, Anda mengubah deskriptor keamanan file yang mendasar, dan semua tautan keras yang menunjuk ke file memungkinkan akses yang baru ditentukan. Anda tidak dapat memberikan deskriptor keamanan yang berbeda pada file berdasarkan per tautan keras.

Fungsi ini tidak mengubah pendeskripsi keamanan file yang akan ditautkan, bahkan jika informasi deskriptor keamanan diteruskan dalam parameter lpSecurityAttributes .

Gunakan DeleteFileTransacted untuk menghapus tautan keras. Anda dapat menghapusnya dalam urutan apa pun terlepas dari urutan pembuatannya.

Bendera, atribut, akses, dan berbagi yang ditentukan dalam CreateFileTransacted beroperasi berdasarkan per file. Artinya, jika Anda membuka file yang tidak mengizinkan berbagi, aplikasi lain tidak dapat berbagi file dengan membuat tautan keras baru ke file.

Saat Anda membuat tautan keras pada sistem file NTFS, informasi atribut file dalam entri direktori disegarkan hanya ketika file dibuka, atau ketika GetFileInformationByHandle dipanggil dengan handel file tertentu.

Tautan simbolis: Jika jalur menunjuk ke tautan simbolis, fungsi membuat tautan keras ke target.

Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.

Teknologi Didukung
Protokol Server Message Block (SMB) 3.0 Tidak
SMB 3.0 Transparent Failover (TFO) Tidak
SMB 3.0 dengan Berbagi File Peluasan Skala (SO) Tidak
Sistem File Volume Bersama Kluster (CsvFS) Tidak
Sistem File Tangguh (ReFS) Tidak
 

Perhatikan bahwa SMB 3.0 tidak mendukung TxF.

Catatan

Header winbase.h mendefinisikan CreateHardLinkTransacted sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosedur UNICODE. Mencampur penggunaan alias encoding-netral dengan kode yang tidak mengodekan-netral dapat menyebabkan ketidakcocokan yang mengakibatkan kesalahan kompilasi atau runtime. Untuk informasi selengkapnya, lihat Konvensi untuk Prototipe Fungsi.

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows Vista [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header winbase.h (termasuk Windows.h)
Pustaka Kernel32.lib
DLL Kernel32.dll

Lihat juga

CreateFileTransacted

DeleteFileTransacted

Fungsi Manajemen File

Hard Link dan Persimpangan

Tautan Simbolis

NTFS Transaksi