Bagikan melalui


Fungsi CreateDirectoryTransactedW (winbase.h)

[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.]

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.

Sintaksis

BOOL CreateDirectoryTransactedW(
  [in, optional] LPCWSTR               lpTemplateDirectory,
  [in]           LPCWSTR               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 dapat NULL..

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

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.

[in] lpNewDirectory

Jalur direktori yang akan dibuat.

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..

[in, optional] lpSecurityAttributes

Penunjuk ke struktur SECURITY_ATTRIBUTES. lpSecurityDescriptor anggota struktur menentukan deskriptor keamanan untuk direktori baru.

Jika lpSecurityAttributesNULL, direktori mendapatkan deskriptor keamanan default. Daftar kontrol akses (ACL) dalam 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, panggil GetLastError. Kemungkinan kesalahan termasuk yang berikut ini.

Mengembalikan kode Deskripsi
ERROR_ALREADY_EXISTS
Direktori yang ditentukan sudah ada.
ERROR_EFS_NOT_ALLOWED_IN_TRANSACTION
Anda tidak dapat membuat direktori turunan dengan direktori induk yang enkripsinya dinonaktifkan.
ERROR_PATH_NOT_FOUND
Satu atau beberapa direktori perantara tidak ada. Fungsi ini hanya membuat direktori akhir di jalur .

Komentar

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 turunan 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
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.

Nota

Header winbase.h mendefinisikan CreateDirectoryTransacted sebagai alias yang secara otomatis memilih versi ANSI atau Unicode dari fungsi ini berdasarkan definisi konstanta preprosedur 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

CreateFileTransacted

Membuat dan Menghapus Direktori

Directory Management Functions

RemoveDirectoryTransacted

SECURITY_ATTRIBUTES

Transaksi NTFS