Fungsi GetFileAttributesTransactedA (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.]
Mengambil atribut sistem file untuk file atau direktori tertentu sebagai operasi yang ditransaksikan.
Sintaks
BOOL GetFileAttributesTransactedA(
[in] LPCSTR lpFileName,
[in] GET_FILEEX_INFO_LEVELS fInfoLevelId,
[out] LPVOID lpFileInformation,
[in] HANDLE hTransaction
);
Parameter
[in] lpFileName
Nama file atau direktori.
Secara default, namanya terbatas pada MAX_PATH karakter. Untuk memperpanjang batas ini menjadi 32.767 karakter lebar, tambahkan "\\?\" ke jalur. Untuk informasi selengkapnya, lihat Menamai File, Jalur, dan Namespace.
Tip
Dimulai dengan Windows 10, Versi 1607, Anda dapat memilih untuk menghapus batasan MAX_PATH tanpa menambahkan sebelumnya "\\?\". Lihat bagian "Batasan Panjang Jalur Maksimum" di Penamaan File, Jalur, dan Namespace untuk detailnya.
File atau direktori harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] fInfoLevelId
Tingkat informasi atribut yang akan diambil.
Parameter ini bisa menjadi nilai berikut dari enumerasi GET_FILEEX_INFO_LEVELS .
Nilai | Makna |
---|---|
|
Parameter lpFileInformation adalah struktur WIN32_FILE_ATTRIBUTE_DATA . |
[out] lpFileInformation
Penunjuk ke buffer yang menerima informasi atribut.
Jenis informasi atribut yang disimpan ke dalam buffer ini ditentukan oleh nilai fInfoLevelId. Jika parameter fInfoLevelId adalah GetFileExInfoStandard, parameter ini menunjuk ke struktur WIN32_FILE_ATTRIBUTE_DATA
[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.
Keterangan
Ketika GetFileAttributesTransacted dipanggil pada direktori yang merupakan folder yang dipasang, ia mengembalikan atribut direktori, bukan direktori akar dalam volume yang terkait dengan folder yang dipasang dengan direktori. Untuk mendapatkan atribut file dari volume terkait, panggil GetVolumeNameForVolumeMountPoint untuk mendapatkan nama volume terkait. Kemudian gunakan nama yang dihasilkan dalam panggilan ke GetFileAttributesTransacted. Hasilnya adalah atribut direktori akar pada volume terkait.
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 |
SMB 3.0 tidak mendukung TxF.
Tautan simbolis: Jika jalur menunjuk ke tautan simbolis, fungsi mengembalikan atribut untuk tautan simbolis.
Operasi Yang Ditransaksikan
Jika file terbuka untuk modifikasi dalam transaksi, tidak ada utas lain yang dapat membuka file untuk modifikasi sampai transaksi dilakukan. Sebaliknya, jika file terbuka untuk modifikasi di luar transaksi, tidak ada utas yang ditransaksikan yang dapat membuka file untuk modifikasi sampai handel yang tidak ditransaksikan ditutup. Jika utas yang tidak ditransaksikan memiliki handel yang dibuka untuk memodifikasi file, panggilan ke GetFileAttributesTransacted untuk file tersebut akan gagal dengan kesalahan ERROR_TRANSACTIONAL_CONFLICT .Catatan
Header winbase.h mendefinisikan GetFileAttributesTransacted 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
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 |