CreateEnlistment 函式 (ktmw32.h)

建立登記、設定其初始狀態,並開啟具有指定存取權的登記句柄。

語法

HANDLE CreateEnlistment(
  [in, optional] LPSECURITY_ATTRIBUTES lpEnlistmentAttributes,
  [in]           HANDLE                ResourceManagerHandle,
  [in]           HANDLE                TransactionHandle,
  [in]           NOTIFICATION_MASK     NotificationMask,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] PVOID                 EnlistmentKey
);

參數

[in, optional] lpEnlistmentAttributes

包含登記管理員之安全性屬性 之SECURITY_ATTRIBUTES 結構的指標。 指定 NULL 以取得預設屬性。

[in] ResourceManagerHandle

資源管理員的句柄 (RM) 登記。

[in] TransactionHandle

RM 正在登記之交易的句柄。

[in] NotificationMask

此 RM 要求 TransactionHandle 參數的通知。 如需有效值的清單,請參閱 NOTIFICATION_MASK

[in, optional] CreateOptions

任何選擇性登記指示。

意義
ENLISTMENT_SUPERIOR
1
以進階交易管理員的身分登記。

[in, optional] EnlistmentKey

TRANSACTION_NOTIFICATION 結構中傳送通知時,RM 所使用的使用者定義結構指標。 這通常用來建立私人結構與這個特定交易的關聯。

傳回值

如果函式成功,傳回值就是登記的句柄。

如果函式失敗,傳回值 會INVALID_HANDLE_VALUE。 若要取得擴充的錯誤資訊,請呼叫 GetLastError 函式。

下列清單會識別可能的錯誤碼:

備註

Windows Vista: 任何在準備前階段或更新版本進行登記的嘗試都會失敗。

如果您未在接受單階段認可要求的通知遮罩內指定,KTM 一律會執行兩階段認可作業。

在交易中登記時,請記住下列通知規則:

  • RM 必須一律要求回復通知。
  • 如果 RM 要求準備通知,它也必須要求認可通知。
  • 如果 RM 要求單階段認可作業,也必須指定準備和認可通知。
  • 要求認可通知的唯一時間是要求至少一對準備和回復通知時。

規格需求

需求
最低支援的用戶端 Windows Vista
最低支援的伺服器 Windows Server 2008
目標平台 Windows
標頭 ktmw32.h
程式庫 KtmW32.lib
Dll KtmW32.dll

另請參閱

CommitComplete

CommitEnlistment

核心交易管理員函式

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION