CreateTransaction 函式 (ktmw32.h)

建立新的交易物件。

語法

HANDLE CreateTransaction(
  [in, optional] LPSECURITY_ATTRIBUTES lpTransactionAttributes,
  [in, optional] LPGUID                UOW,
  [in, optional] DWORD                 CreateOptions,
  [in, optional] DWORD                 IsolationLevel,
  [in, optional] DWORD                 IsolationFlags,
  [in, optional] DWORD                 Timeout,
  [in, optional] LPWSTR                Description
);

參數

[in, optional] lpTransactionAttributes

SECURITY_ATTRIBUTES 結構的指標,決定子進程是否可以繼承傳回的句柄。 如果此參數為 NULL,則無法繼承句柄。

結構的 lpSecurityDescriptor 成員會指定新事件 的安全性描述符 。 如果 lpTransactionAttributesNULL,物件會取得預設的安全性描述元。 訪問控制會列出 (ACL) 交易的預設安全性描述項來自建立者的主要或模擬令牌。

[in, optional] UOW

保留的。 必須是零 (0) 。

[in, optional] CreateOptions

任何選擇性的交易指示。

意義
TRANSACTION_DO_NOT_PROMOTE
無法散發交易。

[in, optional] IsolationLevel

保留;指定零 (0) 。

[in, optional] IsolationFlags

保留;指定零 (0) 。

[in, optional] Timeout

超時時間間隔,以毫秒為單位。 如果指定了非零值,當間隔尚未到達備妥狀態時,交易將會中止。

指定零 (0) 或 INFINITE 以提供無限逾時。

[in, optional] Description

用戶可讀取的交易描述。

傳回值

如果函式成功,則傳回值是交易的句柄。

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

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

備註

使用 CloseHandle 函式關閉交易句柄。 如果在用戶端使用交易句柄呼叫 CommitTransaction 函式之前關閉最後一個交易句柄,KTM 會回復交易。

如果交易可能需要提升至分散式交易,則必須將分散式交易協調器 (DTC) 訪問許可權授與交易中登記。 若要這樣做, lpTransactionAttributes 參數必須包含具有 DTC SID (S-1-5-80-2818357584-的訪問控制專案 3387065753-4000393942-342927828-138088443) 和TRANSACTION_ENLIST許可權。 如需詳細資訊,請參閱分散式交易協調器和存取控制元件

規格需求

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

另請參閱

CommitTransaction

分散式交易協調器

核心交易管理員函式

RollbackTransaction

SECURITY_ATTRIBUTES

SetTransactionInformation