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 パラメーターを使用して、トランザクション マネージャー オブジェクトの作成時に作成されたログ ファイル ストリームのパスとファイル名を指定します。
- TmIdentity パラメーターを使用して、トランザクション マネージャー オブジェクトを識別する GUID を指定します。
- ObjectAttributes パラメーターを使用して、呼び出し元が以前に ZwCreateTransactionManager ルーチンに指定したオブジェクト名を含むOBJECT_ATTRIBUTES構造体を指定します。
TPS コンポーネントは 、ZwOpenTransactionManager を 呼び出した後に ZwRecoverTransactionManager を呼び出す必要があります。
ZwOpenTransactionManager を呼び出す TPS コンポーネントは、最終的に ZwClose を呼び出してオブジェクト ハンドルを閉じる必要があります。
ZwOpenTransactionManager の使用方法の詳細については、「Transaction Manager オブジェクト」および「Resource Managerの作成」を参照してください。
NtOpenTransactionManager と ZwOpenTransactionManager は、同じ Windows ネイティブ システム サービス ルーチンの 2 つのバージョンです。
カーネル モード ドライバーからの呼び出しの場合、Windows ネイティブ システム サービス ルーチンの NtXxx および ZwXxx バージョンは、入力パラメーターを処理および解釈する方法で動作が異なります。 ルーチンの NtXxx バージョンと ZwXxx バージョン間の関係の詳細については、「Using Nt and Zw Versions of the Native System Services Routines」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降のオペレーティング システム バージョンで使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | HwStorPortProhibitedDIs、PowerIrpDDis |