ZwOpenTransaction 関数 (wdm.h)
ZwOpenTransaction ルーチンは、既存のトランザクション オブジェクトへのハンドルを取得します。
構文
NTSYSCALLAPI NTSTATUS ZwOpenTransaction(
[out] PHANDLE TransactionHandle,
[in] ACCESS_MASK DesiredAccess,
[in, optional] POBJECT_ATTRIBUTES ObjectAttributes,
[in] LPGUID Uow,
[in, optional] HANDLE TmHandle
);
パラメーター
[out] TransactionHandle
ZwOpenTransaction がSTATUS_SUCCESSを返す場合にトランザクション オブジェクトへのハンドルを受け取る呼び出し元によって割り当てられた変数へのポインター。
[in] DesiredAccess
呼び出し元が要求したトランザクション オブジェクトへのアクセスを指定するACCESS_MASK値。 このパラメーターを指定する方法については、ZwCreateTransaction の DesiredAccess パラメーターを参照してください。
[in, optional] ObjectAttributes
オブジェクトの属性を指定する OBJECT_ATTRIBUTES 構造体へのポインター。 InitializeObjectAttributes ルーチンを使用してこの構造体を初期化しますが、そのルーチンの InitializeAttributes パラメーターと Attributes パラメーターのみを指定します。 呼び出し元がシステム スレッド コンテキストで実行されていない場合は、 Attributes パラメーターに OBJ_KERNEL_HANDLE フラグを設定する必要があります。 ObjectAttributes パラメーターは省略可能であり、NULL にすることができます。
[in] Uow
トランザクション オブジェクトの 作業単位 (UOW) 識別子である GUID へのポインター。 この GUID は、開くトランザクション オブジェクトを識別します。
[in, optional] TmHandle
トランザクション マネージャー オブジェクトへのハンドル。 このパラメーターが NULL でない場合、KTM は指定されたトランザクション・マネージャー・オブジェクトに属するトランザクション・オブジェクトのみを検索します。 このパラメーターが NULL の場合、KTM はすべてのトランザクション オブジェクトを検索します。
戻り値
操作が成功した場合、ZwCreateTransaction はSTATUS_SUCCESSを返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
DesiredAccess または Uow パラメーターが 0 でした。 |
|
指定されたハンドルは、トランザクション オブジェクトへのハンドルではありません。 |
|
オブジェクト ハンドルが無効です。 |
|
KTM でトランザクション オブジェクトが見つかりませんでした。 |
|
DesiredAccess パラメーターの値が無効です。 |
ルーチンは、他の NTSTATUS 値を返す場合があります。
注釈
通常、リソース マネージャーは、以前 に ZwCreateTransaction と呼んでいたトランザクション クライアントからトランザクション UOW を受信した後、 ZwOpenTransaction を呼び出します。
ZwOpenTransaction の詳細については、「Resource Managerの作成」を参照してください。
NtOpenTransaction と ZwOpenTransaction は、同じ 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 コンプライアンス規則 | HwStorPortProhibitedDDIs(storport), PowerIrpDDis(wdm) |