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