CmSetCallbackObjectContext ルーチンは、指定されたレジストリ オブジェクトとコールバック ルーチンに新しいコンテキスト情報を関連付けます。
構文
NTSTATUS CmSetCallbackObjectContext(
[in, out] PVOID Object,
[in] PLARGE_INTEGER Cookie,
[in] PVOID NewContext,
[out, optional] PVOID *OldContext
);
パラメーター
[in, out] Object
ドライバーがコンテキスト情報を提供しているレジストリ キー オブジェクトへのポインター。 ドライバーは、次のいずれかの構造体の ResultObject メンバーからこのポインターを取得します。
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[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 |