次の方法で共有


CmSetCallbackObjectContext 関数 (wdm.h)

CmSetCallbackObjectContext ルーチンは、指定されたレジストリ オブジェクトとコールバック ルーチンに新しいコンテキスト情報を関連付けます。

構文

NTSTATUS CmSetCallbackObjectContext(
  [in, out]       PVOID          Object,
  [in]            PLARGE_INTEGER Cookie,
  [in]            PVOID          NewContext,
  [out, optional] PVOID          *OldContext
);

パラメーター

[in, out] Object

ドライバーがコンテキスト情報を提供しているレジストリ キー オブジェクトへのポインター。 ドライバーは、次のいずれかの構造体の ResultObject メンバーからこのポインターを取得します。

[in] Cookie

コンテキストを関連付けるコールバック ルーチンを識別するLARGE_INTEGER値へのポインター。 CmRegisterCallbackEx ルーチンは、コールバック ルーチンを登録するときにこの値を指定しました。

[in] NewContext

ドライバー定義のコンテキスト情報へのポインター。

[out, optional] OldContext

指定したオブジェクトと Cookie にドライバーが以前に関連付けられたコンテキスト情報へのポインターを受け取る場所へのポインター。 このパラメーターは省略可能であり、NULL できます。

戻り値

cmSetCallbackObjectContext は、NTSTATUS 型指定された値STATUS_SUCCESSまたは別の適切なを返します。

備考

CmSetCallbackObjectContext ルーチンは、Windows Vista 以降で使用できます。

ドライバーの RegistryCallback ルーチンは、オブジェクトの作成または開いた後 (つまり、作成操作の事後通知中、開いている操作、またはハンドルの終了の事前通知までの後続の通知) に対して、任意のレジストリ キー オブジェクトの cmSetCallbackObjectContext 呼び出すことができます。

ドライバーが CmSetCallbackObjectContext 呼び出した場合、ドライバーの RegistryCallback ルーチンは、キー オブジェクトのハンドルが閉じられた後、またはドライバーが RegistryCallback ルーチンを登録解除するために cmUnRegisterCallback 呼び出した後に、RegNtCallbackObjectContextCleanup 通知を受け取ります。 RegistryCallback ルーチンがこの通知を受け取ると、ルーチンは、オブジェクトのコンテキストに割り当てられたすべてのリソースを解放する必要があります。

RegNtCallbackObjectContextCleanup 通知 前に cmSetCallbackObjectContext が呼び出された場合でも、別の通知を受け取る RegistryCallback によって、OldContext を参照できます。 RegNtCallbackObjectContextCleanup 通知を する前に、OldContext を解放しないでください。

CmSetCallbackObjectContext およびフィルター処理レジストリ操作の の詳細については、「レジストリ呼び出しのフィルター処理」を参照してください。

必要条件

要件 価値
サポートされる最小クライアント Windows Vista 以降で使用できます。
ターゲット プラットフォーム 万国
ヘッダー wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
ライブラリ NtosKrnl.lib
DLL NtosKrnl.exe
IRQL <= APC_LEVEL

関連項目

CmRegisterCallbackEx

CmUnRegisterCallback

REG_CREATE_KEY_INFORMATION

REG_CREATE_KEY_INFORMATION_V1

RegistryCallback