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を返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
入力パラメーターの値が無効です。 |
|
KTM はシステム リソース (通常はメモリ) を割り当てませんでした。 |
|
ObjectAttributes パラメーターが指定するオブジェクト名は無効です。 |
|
KTM で、ログ ファイルの作成中または開いているときにエラーが発生しました。 |
|
DesiredAccess パラメーターの値が無効です。 |
ルーチンは、他NTSTATUS 値を返す場合があります。
備考
呼び出し元は、次の 3 つの手法のいずれかを使用して、開くトランザクション マネージャー オブジェクトを識別できます。
- LogFileName パラメーターを使用して、トランザクション マネージャー オブジェクトの作成時に作成されたログ ファイル ストリームのパスとファイル名を指定します。
- トランザクション マネージャー オブジェクトを識別する GUID を指定するには、TmIdentity パラメーターを使用します。
- ObjectAttributes パラメーターを使用して、呼び出し元が以前に ZwCreateTransactionManager ルーチンに指定したオブジェクト名を含む OBJECT_ATTRIBUTES 構造体を指定します。
TPS コンポーネントは、ZwOpenTransactionManager 呼び出した後、ZwRecoverTransactionManager を呼び出す必要があります。
ZwOpenTransactionManager 呼び出す TPS コンポーネントは、最終的に ZwClose 呼び出してオブジェクト ハンドルを閉じる必要があります。
ZwOpenTransactionManager 使用する方法の詳細については、「Transaction Manager オブジェクトの とリソース マネージャー の作成」を参照してください。
NtOpenTransactionManager と ZwOpenTransactionManager は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なる場合があります。 ルーチンの NtXxx と ZwXxx バージョンの間の関係の詳細については、「ネイティブ システム サービス ルーチンの Nt および Zw バージョンの使用 を参照してください。
必要条件
要件 | 価値 |
---|---|
サポートされる最小クライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
ターゲット プラットフォーム の | 万国 |
ヘッダー | wdm.h (Wdm.h、Ntifs.h を含む) |
ライブラリ | NtosKrnl.lib |
DLL | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | HwStorPortProhibitedDIs、PowerIrpDDis |
関連項目
InitializeObjectAttributes の