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 メンバーからこのポインターを取得します。
REG_OPEN_KEY_INFORMATION
REG_OPEN_KEY_INFORMATION_V1
[in] Cookie
コンテキストを関連付けるコールバック ルーチンを識別するLARGE_INTEGER値へのポインター。 CmRegisterCallbackEx ルーチンは、コールバック ルーチンを登録したときにこの値を指定しました。
[in] NewContext
ドライバー定義のコンテキスト情報へのポインター。
[out, optional] OldContext
ドライバーが以前に指定したオブジェクトと Cookie に関連付けられたコンテキスト情報へのポインターを受け取る場所へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
CmSetCallbackObjectContext は 、STATUS_SUCCESSまたは別の適切な NTSTATUS 型の値を返します。
注釈
CmSetCallbackObjectContext ルーチンは、Windows Vista 以降で使用できます。
ドライバーの RegistryCallback ルーチンは、オブジェクトが作成または開かれた後 (つまり、作成操作の通知後、開いている操作、またはハンドルのクローズの事前通知までの後続の通知) の間に、任意のレジストリ キー オブジェクトに 対して CmSetCallbackObjectContext を呼び出すことができます。
ドライバーが CmSetCallbackObjectContext を呼び出した場合、キー オブジェクトのハンドルが閉じられた後、またはドライバーが CmUnRegisterCallback を呼び出して RegistryCallback ルーチンの登録を解除した後に、ドライバーの RegistryCallback ルーチンは RegNtCallbackObjectContextCleanup 通知を受け取ります。 RegistryCallback ルーチンがこの通知を受け取ると、ルーチンはオブジェクトのコンテキストに割り当てたリソースをすべて解放する必要があります。
RegNtCallbackObjectContextCleanup 通知の前に CmSetCallbackObjectContext が呼び出された場合でも、別の通知を受け取る RegistryCallback によって OldContext を参照できます。 OldContext は、 RegNtCallbackObjectContextCleanup 通知の前にリリースしないでください。
CmSetCallbackObjectContext とレジストリ操作のフィルター処理の詳細については、「レジストリ呼び出しのフィルター処理」を参照してください。
要件
要件 | 値 |
---|---|
サポートされている最小のクライアント | Windows Vista 以降で使用できます。 |
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |