CmCallbackGetKeyObjectID 関数 (wdm.h)
CmCallbackGetKeyObjectID ルーチンは、指定されたレジストリ キー オブジェクトに関連付けられている一意の識別子とオブジェクト名を取得します。
Windows 8以降、レジストリ フィルター ドライバーは、CmCallbackGetKeyObjectID ではなく CmCallbackGetKeyObjectIDEx ルーチンを呼び出す必要があります。 詳細については、以下の 「解説 」セクションを参照してください。
構文
NTSTATUS CmCallbackGetKeyObjectID(
[in] PLARGE_INTEGER Cookie,
[in] PVOID Object,
[out, optional] PULONG_PTR ObjectID,
[out, optional] PCUNICODE_STRING *ObjectName
);
パラメーター
[in] Cookie
CmRegisterCallback または CmRegisterCallbackEx ルーチンを呼び出してドライバーが以前に取得した Cookie 値。
[in] Object
ドライバーの RegistryCallback コールバック ルーチンが、REG_XXX_KEY_INFORMATION 構造体のいずれかの Object メンバーで受け取ったポインター値。
警告
特定の状況では、レジストリ コールバック通知構造体に無効な NULL 以外のオブジェクト ポインターが含まれている可能性があります。 レジストリ フィルター ドライバーは、このようなポインターをこのルーチンに渡してはなりません。 詳細については、「 レジストリ通知の無効なキー オブジェクト ポインター」を参照してください。
[out, optional] ObjectID
Object が指定するレジストリ キーを表す一意識別子へのポインターを受け取る場所へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
[out, optional] ObjectName
UNICODE_STRING構造体へのポインターを受け取る場所へのポインター。 この構造体には、 Object が指定するレジストリ キー オブジェクトのオブジェクト名が含まれます。 オブジェクト名は、実際には、オブジェクトが表すレジストリ キーの完全なパス名です。 呼び出し元は、この UNICODE_STRING 構造体に書き込んだり、解放したりしてはなりません。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
CmCallbackGetKeyObjectID は、操作が成功した場合にSTATUS_SUCCESSを返します。 エラーの戻り値として考えられるのは、次の状態コードです。
リターン コード | 説明 |
---|---|
STATUS_INVALID_PARAMETER | Cookie または Object パラメーターが無効です。 |
注釈
CmCallbackGetKeyObjectID ルーチンは、Windows Vista 以降で使用できます。 このルーチンの改善されたバージョンである CmCallbackGetKeyObjectIDEx は、Windows 8 以降で使用できます。 Windows 8 以降のバージョンの Windows でのみ実行されるドライバーは、CmCallbackGetKeyObjectID ではなく CmCallbackGetKeyObjectIDExを呼び出す必要があります。
ドライバーは、ObjectID パラメーターまたは ObjectName パラメーターに NULL 以外の値を指定することで、CmCallbackGetKeyObjectID を使用してレジストリ キー識別子、オブジェクト名、またはその両方を取得できます。
ドライバーが識別子または名前を取得した後、識別子または名前は、ドライバーの RegistryCallback ルーチンがハンドルのクローズの事前通知を受け取るまで有効です。
ドライバーは、オブジェクト名を変更することはできません。
2 つのレジストリ キー オブジェクトが同じレジストリ キーを表す場合、両方のオブジェクトのキー識別子は同じです。
CmCallbackGetKeyObjectID とレジストリ フィルター処理操作の詳細については、「レジストリ呼び出しのフィルター処理」を参照してください。
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
Header | wdm.h (Wdm.h、Ntddk.h、Ntifs.h を含む) |
Library | NtosKrnl.lib |
[DLL] | NtosKrnl.exe |
IRQL | <= APC_LEVEL |