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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk