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值,指定呼叫端對交易管理員物件的要求存取權。 如需如何指定此參數的資訊,請參閱 ZwCreateTransactionManagerDesiredAccess 參數。

[in, optional] ObjectAttributes

指定物件名稱和其他屬性 之OBJECT_ATTRIBUTES 結構的指標。 使用 InitializeObjectAttributes 例程來初始化這個結構。 如果呼叫端未在系統線程內容中執行,它必須在呼叫 InitializeObjectAttributes 時設定OBJ_KERNEL_HANDLE屬性。 這個參數是選擇性的,而且可以是 NULL

[in, optional] LogFileName

UNICODE_STRING 結構的指標,其中包含建立交易管理員物件時所建立之記錄檔數據流的路徑和檔名。 如需詳細資訊,請參閱 ZwCreateTransactionManagerLogFileName 參數。 這個參數是選擇性的,而且可以是 NULL

[in, optional] TmIdentity

識別交易管理員物件的 GUID 指標。 這個參數是選擇性的,而且可以是 NULL

[in, optional] OpenOptions

這個參數不會使用,而且必須是零。

傳回值

如果作業成功,ZwOpenTransactionManager 會傳回STATUS_SUCCESS。 否則,此例程可能會傳回下列其中一個值:

傳回碼 Description
STATUS_INVALID_PARAMETER
輸入參數的值無效。
STATUS_INSUFFICIENT_RESOURCES
KTM 通常無法 (記憶體) 配置系統資源。
STATUS_OBJECT_NAME_INVALID
ObjectAttributes 參數指定的物件名稱無效。
STATUS_LOG_CORRUPTION_DETECTED
KTM 在建立或開啟記錄檔時發生錯誤。
STATUS_ACCESS_DENIED
DesiredAccess 參數的值無效。
 

例程可能會傳回其他 NTSTATUS值

備註

呼叫端可以使用下列三種技術之一來識別要開啟的交易管理員物件:

  • 使用 LogFileName 參數來指定建立交易管理員物件時所建立之記錄檔數據流的路徑和檔名。
  • 使用 TmIdentity 參數來指定識別交易管理員物件的 GUID。
  • 使用 ObjectAttributes 參數來提供 OBJECT_ATTRIBUTES 結構,其中包含先前指定給 ZwCreateTransactionManager 例程之呼叫端的物件名稱。
您只能指定上述其中一個參數 (物件名稱、記錄檔名稱或 GUID) ,並將其他兩個參數設定為 NULL

TPS 元件在呼叫 ZwOpenTransactionManager 之後,必須呼叫 ZwRecoverTransactionManager

呼叫 ZwOpenTransactionManager 的 TPS 元件最終必須呼叫 ZwClose 以關閉物件句柄。

如需如何使用 ZwOpenTransactionManager 的詳細資訊,請參閱 Transaction Manager 物件建立 Resource Manager

NtOpenTransactionManagerZwOpenTransactionManager 是相同 Windows 原生系統服務例程的兩個版本。

針對來自內核模式驅動程式的呼叫,Windows 原生系統服務例程的 NtXxxZwXxx 版本會以處理和解譯輸入參數的方式,以不同的方式運作。 如需 例程 NtXxxZwXxx 版本之間關聯性的詳細資訊,請參閱 使用原生系統服務例程的 Nt 和 Zw 版本

規格需求

需求
最低支援的用戶端 適用於 Windows Vista 和更新版本的作業系統版本。
目標平台 Universal
標頭 wdm.h (包括 Wdm.h、Ntifs.h)
程式庫 NtosKrnl.lib
Dll NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI 合規性規則 HwStorPortProhibitedDDIs、PowerIrpDDis

另請參閱

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

使用 Nt 和 Zw 版本的原生系統服務例程

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager