次の方法で共有


CmRegisterCallbackEx 関数 (wdm.h)

CmRegisterCallbackEx ルーチンは、RegistryCallback ルーチンを登録します。

構文

NTSTATUS CmRegisterCallbackEx(
  [in]           PEX_CALLBACK_FUNCTION Function,
  [in]           PCUNICODE_STRING      Altitude,
  [in]           PVOID                 Driver,
  [in, optional] PVOID                 Context,
  [out]          PLARGE_INTEGER        Cookie,
                 PVOID                 Reserved
);

パラメーター

[in] Function

登録する RegistryCallback ルーチンへのポインター。

[in] Altitude

UNICODE_STRING構造体へのポインター。 この構造体には、呼び出し元のミニフィルター ドライバー高度を表す文字列を含める必要があります。 詳細については、「解説」を参照してください。

[in] Driver

ドライバーを表す DRIVER_OBJECT 構造体へのポインター。

[in, optional] Context

構成マネージャーが CallbackContext パラメーターとして RegistryCallback ルーチンに渡すドライバー定義の値。

[out] Cookie

コールバック ルーチンを識別する値を受け取るLARGE_INTEGER変数へのポインター。 コールバック ルーチンの登録を解除する場合は、この値を Cookie パラメーターとして CmUnRegisterCallback に渡します。

Reserved

このパラメーターは将来使用するために予約されています。

戻り値

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

リターン コード 説明
STATUS_FLT_INSTANCE_ALTITUDE_COLLISION
呼び出し元のドライバーまたは別のドライバーは、指定された高度の RegistryCallback ルーチンを既に登録しています。
STATUS_INSUFFICIENT_RESOURCES
メモリを割り当てようとしましたが失敗しました。

注釈

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

ドライバーは 、CmRegisterCallback または CmRegisterCallbackEx を呼び出して RegistryCallback ルーチンを登録できます。これは、スレッドがレジストリに対して操作を実行するたびに呼び出されます。

Altitude パラメーターは、ミニフィルターが読み込まれるときに、I/O スタック内の他のミニフィルターに対するミニフィルター ドライバーの位置を定義します。 ミニフィルターへの高度の割り当ては、Microsoft によって管理されます。 高度の詳細については、「 ミニフィルター ドライバーの注文グループと高度の読み込み」を参照してください。

CmUnRegisterCallback を呼び出して、CmRegisterCallbackEx が登録したコールバック ルーチンの登録を解除します。

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

要件

要件
サポートされている最小のクライアント Windows Vista 以降で使用できます。
対象プラットフォーム ユニバーサル
Header wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む)
Library NtosKrnl.lib
[DLL] NtosKrnl.exe
IRQL <=APC_LEVEL
DDI コンプライアンス規則 HwStorPortProhibitedDDIs(storport), IrqlExApcLte2(wdm)

こちらもご覧ください

CmRegisterCallback

CmUnRegisterCallback

DRIVER_OBJECT

RegistryCallback

UNICODE_STRING