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
STATUS_INVALID_PARAMETER
Nilai parameter input tidak valid.
STATUS_INSUFFICIENT_RESOURCES
KTM tidak dapat mengalokasikan sumber daya sistem (biasanya memori).
STATUS_LOG_CORRUPTION_DETECTED
KTM mengalami kesalahan saat membuat atau membuka file log.
STATUS_INVALID_ACL
Deskriptor keamanan berisi daftar kontrol akses (ACL) yang tidak valid.
STATUS_INVALID_SID
Deskriptor keamanan berisi pengidentifikasi keamanan (SID) yang tidak valid.
STATUS_OBJECT_NAME_EXISTS
Nama objek yang ditentukan parameter ObjectAttributes sudah ada.
STATUS_OBJECT_NAME_COLLISION
Sistem operasi mendeteksi nama objek duplikat. Kesalahan mungkin menunjukkan bahwa aliran log sudah digunakan.
STATUS_OBJECT_NAME_INVALID
Nama objek yang ditentukan parameter ObjectAttributes tidak valid.
STATUS_ACCESS_DENIED
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

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

Menggunakan Versi Nt dan Zw dari Rutinitas Layanan Sistem Asli

ZwClose

ZwOpenTransactionManager

ZwQueryInformationTransactionManager

ZwRecoverTransactionManager

ZwRollforwardTransactionManager