Fungsi NtCreateTransactionManager (wdm.h)
Rutinitas ZwCreateTransactionManager membuat objek manajer transaksi baru.
Sintaks
__kernel_entry NTSYSCALLAPI NTSTATUS NtCreateTransactionManager(
[out] PHANDLE TmHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PUNICODE_STRING LogFileName,
[in, optional] ULONG CreateOptions,
[in, optional] ULONG CommitStrength
);
Parameter
[out] TmHandle
Penunjuk ke variabel yang dialokasikan penelepon yang menerima handel ke objek manajer transaksi baru.
[in] DesiredAccess
Nilai ACCESS_MASK yang menentukan akses pemanggil yang diminta ke objek manajer transaksi. Selain hak akses yang ditentukan untuk semua jenis objek (lihat ACCESS_MASK), pemanggil dapat menentukan salah satu bendera hak akses berikut untuk objek manajer transaksi.
bendera ACCESS_MASK | Mengizinkan penelepon untuk |
---|---|
TRANSACTIONMANAGER_CREATE_RM | Buat manajer sumber daya (lihat ZwCreateResourceManager). |
TRANSACTIONMANAGER_QUERY_INFORMATION | Dapatkan informasi tentang manajer transaksi (lihat ZwQueryInformationTransactionManager dan ZwEnumerateTransactionObject). Juga diperlukan untuk ZwOpenResourceManager, ZwCreateTransaction, dan ZwOpenTransaction.) |
TRANSACTIONMANAGER_RECOVER | Pulihkan manajer transaksi (lihat ZwRecoverTransactionManager dan ZwRollforwardTransactionManager). |
TRANSACTIONMANAGER_RENAME | Tidak digunakan. |
TRANSACTIONMANAGER_SET_INFORMATION | Tidak digunakan. |
Atau, Anda dapat menentukan satu atau beberapa bitmap ACCESS_MASK berikut. Bitmap ini menggabungkan bendera dari tabel sebelumnya dengan bendera STANDARD_RIGHTS_XXX yang dijelaskan di halaman referensi ACCESS_MASK . Anda juga dapat menggabungkan bitmap ini dengan bendera tambahan dari tabel sebelumnya. Tabel berikut ini memperlihatkan bagaimana bitmap sesuai dengan hak akses tertentu.
Bitmap hak | Kumpulan hak akses tertentu |
---|---|
TRANSACTIONMANAGER_GENERIC_READ | STANDARD_RIGHTS_READ dan TRANSACTIONMANAGER_QUERY_INFORMATION |
TRANSACTIONMANAGER_GENERIC_WRITE | STANDARD_RIGHTS_WRITE, TRANSACTIONMANAGER_SET_INFORMATION, TRANSACTIONMANAGER_RECOVER, TRANSACTIONMANAGER_RENAME, dan TRANSACTIONMANAGER_CREATE_RM |
TRANSACTIONMANAGER_GENERIC_EXECUTE | STANDARD_RIGHTS_EXECUTE |
TRANSACTIONMANAGER_ALL_ACCESS | STANDARD_RIGHTS_REQUIRED, TRANSACTIONMANAGER_GENERIC_READ, TRANSACTIONMANAGER_GENERIC_WRITE, dan TRANSACTIONMANAGER_GENERIC_EXECUTE |
[in, optional] ObjectAttributes
Penunjuk ke struktur OBJECT_ATTRIBUTES yang menentukan nama objek dan atribut lainnya. Gunakan rutinitas InitializeObjectAttributes untuk menginisialisasi struktur ini. Jika penelepon tidak berjalan dalam konteks utas sistem, pemanggil harus mengatur atribut OBJ_KERNEL_HANDLE saat memanggil InitializeObjectAttributes. Parameter ini bersifat opsional dan dapat berupa NULL.
[in, optional] LogFileName
Penunjuk ke struktur UNICODE_STRING yang berisi jalur dan nama file aliran file log CLFS yang akan dikaitkan dengan objek manajer transaksi. Parameter ini harus NULL jika parameter CreateOptions TRANSACTION_MANAGER_VOLATILE. Jika tidak, parameter ini harus non-NULL. Untuk informasi selengkapnya, lihat bagian Keterangan berikut ini.
[in, optional] CreateOptions
Bendera pembuatan objek opsional. Tabel berikut berisi bendera yang tersedia, yang ditentukan dalam Ktmtypes.h.
Bendera opsi | Makna |
---|---|
TRANSACTION_MANAGER_VOLATILE | Objek manajer transaksi akan volatil. Oleh karena itu, ia tidak akan menggunakan file log. |
TRANSACTION_MANAGER_COMMIT_DEFAULT | Hanya untuk penggunaan internal. |
TRANSACTION_MANAGER_COMMIT_SYSTEM_VOLUME | Hanya untuk penggunaan internal. |
TRANSACTION_MANAGER_COMMIT_SYSTEM_HIVES | Hanya untuk penggunaan internal. |
TRANSACTION_MANAGER_COMMIT_LOWEST | Hanya untuk penggunaan internal. |
TRANSACTION_MANAGER_CORRUPT_FOR_RECOVERY | Hanya untuk penggunaan internal. |
TRANSACTION_MANAGER_CORRUPT_FOR_PROGRESS | Hanya untuk penggunaan internal. |
[in, optional] CommitStrength
Disiapkan untuk penggunaan masa mendatang. Parameter ini harus nol.
Nilai kembali
ZwCreateTransactionManager mengembalikan STATUS_SUCCESS jika operasi berhasil. Jika tidak, rutinitas ini mungkin mengembalikan salah satu nilai berikut:
Menampilkan kode | Deskripsi |
---|---|
|
Nilai parameter input tidak valid. |
|
KTM tidak dapat mengalokasikan sumber daya sistem (biasanya memori). |
|
KTM mengalami kesalahan saat membuat atau membuka file log. |
|
Deskriptor keamanan berisi daftar kontrol akses (ACL) yang tidak valid. |
|
Deskriptor keamanan berisi pengidentifikasi keamanan (SID) yang tidak valid. |
|
Nama objek yang ditentukan parameter ObjectAttributes sudah ada. |
|
Sistem operasi mendeteksi nama objek duplikat. Kesalahan mungkin menunjukkan bahwa aliran log sudah digunakan. |
|
Nama objek yang ditentukan parameter ObjectAttributes tidak valid. |
|
Nilai parameter DesiredAccess tidak valid. |
Rutinitas mungkin mengembalikan nilai NTSTATUS lainnya.
Keterangan
Jika aliran file log yang ditentukan parameter LogFileName tidak ada, KTM memanggil CLFS untuk membuat aliran. Jika aliran sudah ada, KTM memanggil CLFS untuk membuka aliran.
Komponen TPS Anda harus memanggil ZwRecoverTransactionManager setelah disebut ZwCreateTransactionManager
Jika komponen TPS Anda menentukan bendera TRANSACTION_MANAGER_VOLATILE dalam parameter CreateOptions , semua manajer sumber daya yang terkait dengan objek manajer transaksi harus menentukan bendera RESOURCE_MANAGER_VOLATILE saat mereka memanggil ZwCreateResourceManager.
Komponen TPS yang memanggil ZwCreateTransactionManager akhirnya harus memanggil ZwClose untuk menutup handel objek.
Untuk informasi selengkapnya tentang cara menggunakan ZwCreateTransactionManager, lihat Membuat Resource Manager.
NtCreateTransactionManager dan ZwCreateTransactionManager adalah dua versi dari rutinitas Windows Native System Services yang sama.
Untuk panggilan dari driver mode kernel, versi NtXxx dan ZwXxx dari rutinitas Windows Native System Services dapat berperilaku berbeda dalam cara mereka menangani dan menafsirkan parameter input. Untuk informasi selengkapnya tentang hubungan antara versi NtXxx dan ZwXxx dari rutinitas, lihat Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli.
Persyaratan
Persyaratan | Nilai |
---|---|
Klien minimum yang didukung | Tersedia di Windows Vista dan versi sistem operasi yang lebih baru. |
Target Platform | Universal |
Header | wdm.h (termasuk Wdm.h, Ntifs.h) |
Pustaka | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
Aturan kepatuhan DDI | HwStorPortProhibitedDDIs, PowerIrpDDis |
Lihat juga
Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli
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