次の方法で共有


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 は常に 2 フェーズコミット操作を実行します。

トランザクションに参加する場合は、次の通知規則に注意してください。

  • RM は常にロールバック通知を要求する必要があります。
  • RM が準備通知を要求する場合は、コミット通知も要求する必要があります。
  • RM が単一フェーズのコミット操作を要求する場合は、準備通知とコミット通知も指定する必要があります。
  • RM がコミット通知を要求する必要がないのは、少なくとも 1 組の準備通知とロールバック通知を要求している場合だけです。

要件

要件
サポートされている最小のクライアント Windows Vista
サポートされている最小のサーバー Windows Server 2008
対象プラットフォーム Windows
ヘッダー ktmw32.h
Library KtmW32.lib
[DLL] KtmW32.dll

こちらもご覧ください

CommitComplete

CommitEnlistment

カーネル トランザクション マネージャー関数

NOTIFICATION_MASK

OpenEnlistment

TRANSACTION_NOTIFICATION