Fungsi CreateDirectoryTransactedA (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 direktori baru sebagai operasi yang ditransaksikan, dengan atribut direktori templat tertentu. Jika sistem file yang mendasar mendukung keamanan pada file dan direktori, fungsi menerapkan deskriptor keamanan tertentu ke direktori baru. Direktori baru mempertahankan atribut lain dari direktori templat yang ditentukan.
Sintaks
BOOL CreateDirectoryTransactedA(
[in, optional] LPCSTR lpTemplateDirectory,
[in] LPCSTR lpNewDirectory,
[in, optional] LPSECURITY_ATTRIBUTES lpSecurityAttributes,
[in] HANDLE hTransaction
);
Parameter
[in, optional] lpTemplateDirectory
Jalur direktori yang akan digunakan sebagai templat saat membuat direktori baru. Parameter ini bisa NULL.
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.
Direktori harus berada di komputer lokal; jika tidak, fungsi gagal dan kode kesalahan terakhir diatur ke ERROR_TRANSACTIONS_UNSUPPORTED_REMOTE.
[in] lpNewDirectory
Jalur direktori yang akan dibuat.
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.
[in, optional] lpSecurityAttributes
Penunjuk ke struktur SECURITY_ATTRIBUTES . Anggota lpSecurityDescriptor dari struktur menentukan deskriptor keamanan untuk direktori baru.
Jika lpSecurityAttributes adalah NULL, direktori akan mendapatkan deskriptor keamanan default. Daftar kontrol akses (ACL) di deskriptor keamanan default untuk direktori diwarisi dari direktori induknya.
Sistem file target harus mendukung keamanan pada file dan direktori agar parameter ini berpengaruh. Ini ditunjukkan ketika GetVolumeInformation mengembalikan FS_PERSISTENT_ACLS.
[in] hTransaction
Handel ke transaksi. Handel ini dikembalikan oleh fungsi CreateTransaction .
Mengembalikan nilai
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. Kemungkinan kesalahan termasuk yang berikut ini.
Menampilkan kode | Deskripsi |
---|---|
|
Direktori yang ditentukan sudah ada. |
|
Anda tidak dapat membuat direktori anak dengan direktori induk yang enkripsinya dinonaktifkan. |
|
Satu atau beberapa direktori perantara tidak ada. Fungsi ini hanya membuat direktori akhir di jalur. |
Keterangan
Fungsi CreateDirectoryTransacted memungkinkan Anda membuat direktori yang mewarisi informasi aliran dari direktori lain. Fungsi ini berguna, misalnya, ketika Anda menggunakan direktori Macintosh, yang memiliki aliran sumber daya yang diperlukan untuk mengidentifikasi konten direktori dengan benar sebagai atribut.
Beberapa sistem file, seperti sistem file NTFS, mendukung kompresi atau enkripsi untuk file dan direktori individual. Pada volume yang diformat untuk sistem file tersebut, direktori baru mewarisi atribut kompresi dan enkripsi direktori induknya.
Fungsi ini gagal dengan ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION jika Anda mencoba membuat direktori anak dengan direktori induk yang menonaktifkan enkripsi.
Anda dapat memperoleh handel ke direktori dengan memanggil fungsi CreateFileTransacted dengan set bendera FILE_FLAG_BACKUP_SEMANTICS .
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.
Catatan
Header winbase.h mendefinisikan CreateDirectoryTransacted sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta pra-prosesor 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