Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
[Microsoft sangat merekomendasikan pengembang menggunakan sarana 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 menggunakanNTFS Transaksi.]
Mengatur atribut untuk file atau direktori sebagai operasi yang ditransaksikan.
Sintaksis
BOOL SetFileAttributesTransactedA(
[in] LPCSTR lpFileName,
[in] DWORD dwFileAttributes,
[in] HANDLE hTransaction
);
Parameter
[in] lpFileName
Nama file yang atributnya akan diatur.
Secara default, nama dibatasi untuk MAX_PATH karakter. Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, tambahkan awal "\\?\" ke jalur. Untuk informasi selengkapnya, lihat Penamaan File, Jalur, dan Namespace.
Ujung
Dimulai dengan Windows 10, Versi 1607, Anda dapat memilih untuk menghapus batasan MAX_PATH tanpa prepending "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" Penamaan File, Jalur, dan Namespace untuk detailnya.
File harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] dwFileAttributes
Atribut file yang akan diatur untuk file.
Untuk daftar nilai atribut file dan deskripsinya, lihat Konstanta Atribut File. Parameter ini dapat berupa satu atau beberapa nilai, dikombinasikan menggunakan operator bitwise-OR. Namun, semua nilai lain mengambil alih FILE_ATTRIBUTE_NORMAL.
Tidak semua atribut didukung oleh fungsi ini. Untuk informasi selengkapnya, lihat bagian Keterangan.
Berikut ini adalah daftar nilai atribut yang didukung.
FILE_ATTRIBUTE_ARCHIVE (32 (0x20))
FILE_ATTRIBUTE_HIDDEN (2 (0x2))
FILE_ATTRIBUTE_NORMAL (128 (0x80))
FILE_ATTRIBUTE_NOT_CONTENT_INDEXED (8192 (0x2000))
FILE_ATTRIBUTE_OFFLINE (4096 (0x1000))
FILE_ATTRIBUTE_READONLY (1 (0x1))
FILE_ATTRIBUTE_SYSTEM (4 (0x4))
FILE_ATTRIBUTE_TEMPORARY (256 (0x100))
[in] hTransaction
Handel ke transaksi. Handel ini dikembalikan oleh fungsi
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan bukan nol.
Jika fungsi gagal, nilai yang dikembalikan adalah nol. Untuk mendapatkan informasi kesalahan yang diperluas, panggil GetLastError.
Komentar
Tabel berikut ini menjelaskan cara mengatur atribut yang tidak dapat diatur menggunakan SetFileAttributesTransacted. Perhatikan bahwa ini bukan operasi yang ditransaksikan.
Atribut | Cara Mengatur |
---|---|
FILE_ATTRIBUTE_COMPRESSED
0x800 |
Untuk mengatur status kompresi file, gunakan fungsi |
FILE_ATTRIBUTE_DEVICE
0x40 |
Dipesan; jangan gunakan. |
FILE_ATTRIBUTE_DIRECTORY
0x10 |
File tidak dapat dikonversi menjadi direktori. Untuk membuat direktori, gunakan fungsi CreateDirectory atau CreateDirectoryEx. |
FILE_ATTRIBUTE_ENCRYPTED
0x4000 |
Untuk membuat file terenkripsi, gunakan fungsi |
FILE_ATTRIBUTE_REPARSE_POINT
0x400 |
Untuk mengaitkan titik pemisahan ulang dengan file atau direktori, gunakan fungsi |
FILE_ATTRIBUTE_SPARSE_FILE
0x200 |
Untuk mengatur atribut jarang file, gunakan fungsi |
Jika file terbuka untuk modifikasi dalam transaksi, tidak ada utas lain yang berhasil membuka file untuk modifikasi hingga transaksi dilakukan. Jika utas yang ditransaksikan membuka file terlebih dahulu, utas berikutnya yang mencoba membuka file untuk modifikasi sebelum transaksi dilakukan akan menerima pelanggaran berbagi. Jika utas yang tidak ditransaksikan membuka file untuk modifikasi sebelum utas yang ditransaksikan, dan masih terbuka ketika utas yang ditransaksikan mencoba membukanya, transaksi akan menerima kesalahan ERROR_TRANSACTIONAL_CONFLICT.
Untuk informasi selengkapnya tentang transaksi, lihat Transaksional NTFS.
Di Windows 8 dan Windows Server 2012, fungsi ini didukung oleh teknologi berikut.
Teknologi | Didukung |
---|---|
Protokol Server Message Block (SMB) 3.0 | Tidak |
Failover Transparan (TFO) SMB 3.0 | Tidak |
SMB 3.0 dengan Scale-out File Shares (SO) | Tidak |
Sistem File Volume Bersama Kluster (CsvFS) | Tidak |
Sistem File Tangguh (ReFS) | Tidak |
SMB 3.0 tidak mendukung TxF.
Operasi Ditransaksikan
Jika file terbuka untuk modifikasi dalam transaksi, tidak ada utas lain yang dapat membuka file untuk modifikasi hingga transaksi dilakukan. Jadi jika utas yang ditransaksikan membuka file terlebih dahulu, utas berikutnya yang mencoba memodifikasi file sebelum transaksi dilakukan menerima pelanggaran berbagi. Jika utas yang tidak ditransaksikan memodifikasi file sebelum utas yang ditransaksikan, dan file masih terbuka ketika transaksi mencoba membukanya, transaksi menerima kesalahan ERROR_TRANSACTIONAL_CONFLICT.Nota
Header winbase.h mendefinisikan SetFileAttributesTransacted sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta praprosesor 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
Syarat | Nilai |
---|---|
klien minimum yang didukung | Windows Vista [hanya aplikasi desktop] |
server minimum yang didukung |
Windows Server 2008 [hanya aplikasi desktop] |
Platform Target |
Windows |
Header |
winbase.h (termasuk Windows.h) |
Pustaka |
Kernel32.lib |
DLL |
Kernel32.dll |
Lihat juga
Konstanta Atribut File
Tautan Simbolis