次の方法で共有


TmReferenceEnlistmentKey 関数 (wdm.h)

TmReferenceEnlistmentKey ルーチンは、指定された参加オブジェクトのキーの参照カウントをインクリメントし、キーを取得します。

構文

NTSTATUS TmReferenceEnlistmentKey(
  [in]  PKENLISTMENT Enlistment,
  [out] PVOID        *Key
);

パラメーター

[in] Enlistment

参加リスト オブジェクトへのポインター。 コンポーネントは、 ResourceManagerNotification コールバック ルーチンへの入力としてこのポインターを受け取ることができます。 または、コンポーネントで ObReferenceObjectByHandle を呼び出し、 前に ZwCreateEnlistmentTmCreateEnlistment、または ZwOpenEnlistment を呼び出したオブジェクト ハンドルを指定することもできます。

[out] Key

参加オブジェクトの参加キーを受け取る変数へのポインター。 呼び出し元は、 ZwCreateEnlistment または TmCreateEnlistment を呼び出すときに、参加キー 割り当てます。

戻り値

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

リターン コード 説明
STATUS_INVALID_PARAMETER
Key パラメーターの値は NULL です
STATUS_UNSUCCESSFUL
指定した参加オブジェクトの参照カウントが 0 にデクリメントされているため、参照カウントをインクリメントできません。
STATUS_INSUFFICIENT_RESOURCES
参照カウントは最大値 (0xFFFFFFFF) であり、インクリメントできません。
 

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

注釈

TmReferenceEnlistmentKey ルーチンは、参加オブジェクトのキー値の参照カウントをインクリメントし、TmDereferenceEnlistmentKey ルーチンによってカウントがデクリメントされます。

リソース マネージャーが参加リストのキー値を定義している場合、リソース マネージャーは 、ZwGetNotificationResourceManager を呼び出すとき、または KTM が ResourceManagerNotification コールバック ルーチンを呼び出すときにキー値を受け取ります。

リソース マネージャーは通知の処理中に、一時的なメモリ割り当てへのポインターとしてキーを使用し、参照カウントを使用してメモリの割り当てを解除するタイミングを決定する場合があります。

Zw Xxx ルーチンの代わりに KTM の TmXxx ルーチンを使用する場合の詳細については、「TmXxx ルーチンの使用」を参照してください。

要件

要件
サポートされている最小のクライアント Windows Vista 以降のオペレーティング システム バージョンで使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <= DISPATCH_LEVEL

こちらもご覧ください

ObReferenceObjectByHandle

ResourceManagerNotification

TmCreateEnlistment

TmDereferenceEnlistmentKey

ZwCreateEnlistment

ZwOpenEnlistment