ntOpenTransactionManager 函式 (wdm.h)
ZwOpenTransactionManager 例程會取得現有交易管理員物件的句柄。
語法
__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransactionManager(
[out] PHANDLE TmHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in, optional] PUNICODE_STRING LogFileName,
[in, optional] LPGUID TmIdentity,
[in, optional] ULONG OpenOptions
);
參數
[out] TmHandle
如果 ZwOpenTransactionManager 傳回STATUS_SUCCESS,則呼叫端配置的變數指標會接收交易管理員物件的句柄。
[in] DesiredAccess
ACCESS_MASK值,指定呼叫端對交易管理員物件的要求存取權。 如需如何指定此參數的資訊,請參閱 ZwCreateTransactionManager 的 DesiredAccess 參數。
[in, optional] ObjectAttributes
指定物件名稱和其他屬性 之OBJECT_ATTRIBUTES 結構的指標。 使用 InitializeObjectAttributes 例程來初始化這個結構。 如果呼叫端未在系統線程內容中執行,它必須在呼叫 InitializeObjectAttributes 時設定OBJ_KERNEL_HANDLE屬性。 這個參數是選擇性的,而且可以是 NULL。
[in, optional] LogFileName
UNICODE_STRING 結構的指標,其中包含建立交易管理員物件時所建立之記錄檔數據流的路徑和檔名。 如需詳細資訊,請參閱 ZwCreateTransactionManager 的 LogFileName 參數。 這個參數是選擇性的,而且可以是 NULL。
[in, optional] TmIdentity
識別交易管理員物件的 GUID 指標。 這個參數是選擇性的,而且可以是 NULL。
[in, optional] OpenOptions
這個參數不會使用,而且必須是零。
傳回值
如果作業成功,ZwOpenTransactionManager 會傳回STATUS_SUCCESS。 否則,此例程可能會傳回下列其中一個值:
傳回碼 | Description |
---|---|
|
輸入參數的值無效。 |
|
KTM 通常無法 (記憶體) 配置系統資源。 |
|
ObjectAttributes 參數指定的物件名稱無效。 |
|
KTM 在建立或開啟記錄檔時發生錯誤。 |
|
DesiredAccess 參數的值無效。 |
例程可能會傳回其他 NTSTATUS值。
備註
呼叫端可以使用下列三種技術之一來識別要開啟的交易管理員物件:
- 使用 LogFileName 參數來指定建立交易管理員物件時所建立之記錄檔數據流的路徑和檔名。
- 使用 TmIdentity 參數來指定識別交易管理員物件的 GUID。
- 使用 ObjectAttributes 參數來提供 OBJECT_ATTRIBUTES 結構,其中包含先前指定給 ZwCreateTransactionManager 例程之呼叫端的物件名稱。
TPS 元件在呼叫 ZwOpenTransactionManager 之後,必須呼叫 ZwRecoverTransactionManager。
呼叫 ZwOpenTransactionManager 的 TPS 元件最終必須呼叫 ZwClose 以關閉物件句柄。
如需如何使用 ZwOpenTransactionManager 的詳細資訊,請參閱 Transaction Manager 物件和建立 Resource Manager。
NtOpenTransactionManager 和 ZwOpenTransactionManager 是相同 Windows 原生系統服務例程的兩個版本。
針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxx 和 ZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxx 和 ZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本。
規格需求
需求 | 值 |
---|---|
最低支援的用戶端 | 適用於 Windows Vista 和更新版本的作業系統版本。 |
目標平台 | Universal |
標頭 | wdm.h (包括 Wdm.h、Ntifs.h) |
程式庫 | NtosKrnl.lib |
Dll | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI 合規性規則 | HwStorPortProhibitedDDIs、PowerIrpDDis |