WdfRegistryQueryMemory 関数 (wdfregistry.h)
[KMDF と UMDF に適用]
WdfRegistryQueryMemory メソッドは、指定されたレジストリ値に現在割り当てられているデータを取得し、フレームワーク割り当てバッファーにデータを格納し、バッファーを表すフレームワーク メモリ オブジェクトを作成します。
構文
NTSTATUS WdfRegistryQueryMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] POOL_TYPE PoolType,
[in, optional] PWDF_OBJECT_ATTRIBUTES MemoryAttributes,
[out] WDFMEMORY *Memory,
[out, optional] PULONG ValueType
);
パラメーター
[in] Key
開かれたレジストリ キーを表すレジストリ キー オブジェクトへのハンドル。
[in] ValueName
値名を含む UNICODE_STRING 構造体へのポインター。
[in] PoolType
データ バッファー に割り当てるメモリの種類を指定するPOOL_TYPE型指定された値。
[in, optional] MemoryAttributes
新しいメモリ オブジェクトのオブジェクト属性を含む WDF_OBJECT_ATTRIBUTES 構造体へのポインター。 このパラメーターは省略可能であり、WDF_NO_OBJECT_ATTRIBUTESできます。
[out] Memory
新しいメモリ オブジェクトへのハンドルを受け取る場所へのポインター。
[out, optional] ValueType
データ型を受け取る場所へのポインター。 データ型の値の一覧については、KEY_VALUE_BASIC_INFORMATIONの Type メンバーを参照してください。 このポインターは省略可能であり、 NULL にすることができます。
戻り値
操作が成功した場合、WdfRegistryQueryMemory はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
WdfRegistryQueryMemory は IRQL = PASSIVE_LEVELで呼び出されませんでした。 |
|
無効なパラメーターが指定されました。 |
|
メモリ オブジェクトを割り当てませんでした。 |
|
ドライバーは、KEY_QUERY_VALUE、KEY_READ、またはKEY_ALL_ACCESSアクセスでレジストリ キーを開けませんでした。 |
|
レジストリ値が使用できませんでした。 |
|
レジストリ値は、指定したキーの下に存在しますが、空です。 |
WdfRegistryQueryMemory メソッドが返す可能性があるその他の戻り値の一覧については、「フレームワーク オブジェクト作成エラー」を参照してください。
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ドライバーが WdfRegistryQueryMemory を呼び出すと、フレームワークは、指定されたレジストリ値のデータを保持するのに十分な大きさのバッファーを割り当てます。 WdfRegistryQueryMemory が返された後、ドライバーは WdfMemoryGetBuffer を呼び出して、バッファーとバッファーのサイズへのポインターを取得できます。
レジストリ キー オブジェクトの詳細については、「 Framework-Based ドライバーでのレジストリの使用」を参照してください。
例
次のコード例では、 MyValueName 値に割り当てられているデータを取得し、データのアドレスとサイズを取得します。
WDFMEMORY memory;
size_t size;
PUCHAR pBuf;
NTSTATUS status;
ULONG type;
DECLARE_CONST_UNICODE_STRING(valueName1, L"MyValueName");
status = WdfRegistryQueryMemory(
Key,
&valueName1,
PagedPool,
NULL,
&memory,
&type
);
pBuf = (PUCHAR)WdfMemoryGetBuffer(
memory,
&size
);
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 KMDF バージョン | 1.0 |
最小 UMDF バージョン | 2.0 |
Header | wdfregistry.h (Wdf.h を含む) |
Library | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 | DriverCreate(kmdf)、 KmdfIrql(kmdf)、 KmdfIrql2(kmdf)、KmdfIrqlExplicit(kmdf) |