次の方法で共有


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 値。 このパラメーターを指定する方法については、ZwCreateTransactionManager DesiredAccess パラメーター参照してください。

[in, optional] ObjectAttributes

オブジェクト名とその他の属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 この構造体を初期化するには、InitializeObjectAttributes ルーチンを使用します。 呼び出し元がシステム スレッド コンテキストで実行されていない場合は、InitializeObjectAttributes 呼び出すときにOBJ_KERNEL_HANDLE属性を設定する必要があります。 このパラメーターは省略可能であり、NULL できます。

[in, optional] LogFileName

トランザクション マネージャー オブジェクトの作成時に作成された ログ ファイル ストリーム のパスとファイル名を含む UNICODE_STRING 構造体へのポインター。 詳細については、ZwCreateTransactionManager LogFileName パラメーター参照してください。 このパラメーターは省略可能であり、NULL できます。

[in, optional] TmIdentity

トランザクション マネージャー オブジェクトを識別する GUID へのポインター。 このパラメーターは省略可能であり、NULL できます。

[in, optional] OpenOptions

このパラメーターは使用されず、0 である必要があります。

戻り値

ZwOpenTransactionManager 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。

リターン コード 形容
STATUS_INVALID_PARAMETER
入力パラメーターの値が無効です。
STATUS_INSUFFICIENT_RESOURCES
KTM はシステム リソース (通常はメモリ) を割り当てませんでした。
STATUS_OBJECT_NAME_INVALID
ObjectAttributes パラメーターが指定するオブジェクト名は無効です。
STATUS_LOG_CORRUPTION_DETECTED
KTM で、ログ ファイルの作成中または開いているときにエラーが発生しました。
STATUS_ACCESS_DENIED
DesiredAccess パラメーターの値が無効です。
 

ルーチンは、NTSTATUS 値を返す場合があります。

備考

呼び出し元は、次の 3 つの手法のいずれかを使用して、開くトランザクション マネージャー オブジェクトを識別できます。

  • LogFileName パラメーターを使用して、トランザクション マネージャー オブジェクトの作成時に作成されたログ ファイル ストリームのパスとファイル名を指定します。
  • トランザクション マネージャー オブジェクトを識別する GUID を指定するには、TmIdentity パラメーターを使用します。
  • ObjectAttributes パラメーターを使用して、呼び出し元が以前に ZwCreateTransactionManager ルーチンに指定したオブジェクト名を含む OBJECT_ATTRIBUTES 構造体を指定します。
上記のいずれかのパラメーター (オブジェクト名、ログ ファイル名、または GUID) のみを指定し、他の 2 つのパラメーターを NULL 設定する必要があります。

TPS コンポーネントは、ZwOpenTransactionManager 呼び出した後、ZwRecoverTransactionManager を呼び出す必要があります。

ZwOpenTransactionManager 呼び出す TPS コンポーネントは、最終的に ZwClose 呼び出してオブジェクト ハンドルを閉じる必要があります。

ZwOpenTransactionManager 使用する方法の詳細については、「Transaction Manager オブジェクトの とリソース マネージャー の作成」を参照してください。

NtOpenTransactionManager と ZwOpenTransactionManager は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。

カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxxZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降のオペレーティング システム バージョンで使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL PASSIVE_LEVEL
DDI コンプライアンス規則 する HwStorPortProhibitedDIs、PowerIrpDDis

関連項目

InitializeObjectAttributes

OBJECT_ATTRIBUTES

UNICODE_STRING

ネイティブ システム サービス ルーチンの Nt バージョンと Zw バージョンを使用した

ZwClose

ZwCreateTransactionManager

ZwQueryInformationTransactionManager