次の方法で共有


NtOpenTransaction 関数 (wdm.h)

ZwOpenTransaction ルーチンは、既存の トランザクション オブジェクトへのハンドルを取得します。

構文

__kernel_entry NTSYSCALLAPI NTSTATUS NtOpenTransaction(
  [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を返します。 それ以外の場合、このルーチンは次のいずれかの値を返す可能性があります。

リターン コード 形容
STATUS_INVALID_PARAMETER
DesiredAccess または Uow パラメーター 0 でした。
STATUS_OBJECT_TYPE_MISMATCH
指定されたハンドルは、トランザクション オブジェクトへのハンドルではありません。
STATUS_INVALID_HANDLE
オブジェクト ハンドルが無効です。
STATUS_TRANSACTION_NOT_FOUND
KTM はトランザクション オブジェクトを見つけることができませんでした。
STATUS_ACCESS_DENIED
DesiredAccess パラメーターの値が無効です。
 

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

備考

通常、リソース マネージャーは、以前に ZwCreateTransaction 呼び出したトランザクション クライアントからトランザクション UOW を受信した後、ZwOpenTransaction を呼び出します。

ZwOpenTransactionの詳細については、「Resource Managerの作成」を参照してください。

NtOpenTransaction ZwOpenTransaction は、同じ 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

関連項目

ACCESS_MASK

InitializeObjectAttributes

OBJECT_ATTRIBUTES

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

ZwCommitTransaction

ZwCreateTransaction

ZwQueryInformationTransaction

ZwRollbackTransaction