次の方法で共有


トランザクション マネージャー オブジェクト

トランザクション マネージャー オブジェクトの主な目的は、KTM がトランザクションに関する状態情報を記録するために使用する共通ログ ファイル システム (CLFS) ログ ストリームを作成して保持することです。

トランザクション マネージャー オブジェクトには、KTM メインが保持し、オブジェクトのログ ストリーム内の情報のシーケンスに使用する仮想クロック値も含まれています。

KTM には、カーネル モード TPS コンポーネント が呼び出すことができるトランザクション マネージャー オブジェクト ルーチンのセットが用意されています。 KTM には、ユーザー モード アプリケーションが呼び出すことができるユーザー モード ルーチンの同様のセットも用意されています。 ユーザーモード ルーチンの詳細については、Microsoft Windows SDK を参照してください。

KTM は、リソース マネージャーが ZwCreateTransactionManager を呼び出すときにトランザクション マネージャー オブジェクトを作成します。 通常、TPS の各リソース マネージャーは、トランザクション マネージャー オブジェクトを作成します。 ただし、複数のリソース マネージャーが 1 つのトランザクション マネージャー オブジェクトを共有する TPS を設計することもできます。

TPS コンポーネントは、ZwOpenTransactionManager を呼び出すことによって、既存のトランザクション マネージャー オブジェクトへの追加のハンドルを開くことができます。 たとえば、TPS に 1 つのトランザクション マネージャー オブジェクトを共有する複数のリソース マネージャーがある場合、1 つのリソース マネージャーは ZwCreateTransactionManager を呼び出し、オブジェクト GUID を他のリソース マネージャーに渡して、ZwOpenTransactionManager を呼び出すことができます。

リソース マネージャーは、ZwClose を呼び出して、トランザクション マネージャー オブジェクトへのハンドルを閉じます。

オペレーティング システムは、最後のハンドルが閉じられ、KTM がオブジェクトへのすべての参照を解放した後、オブジェクトを削除します。