WdfRegistryAssignMemory 関数 (wdfregistry.h)
[KMDF と UMDF に適用]
WdfRegistryAssignMemory メソッドは、指定したメモリ バッファーに含まれるデータをレジストリ内の指定された値名に割り当てます。
構文
NTSTATUS WdfRegistryAssignMemory(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueType,
[in] WDFMEMORY Memory,
[in, optional] PWDFMEMORY_OFFSET MemoryOffsets
);
パラメーター
[in] Key
開かれたレジストリ キーを表すレジストリ キー オブジェクトへのハンドル。
[in] ValueName
値名を含む UNICODE_STRING 構造体へのポインター。
[in] ValueType
データ型を識別する値。 データ型の値の一覧については、KEY_VALUE_BASIC_INFORMATIONの Type メンバーを参照してください。
[in] Memory
フレームワーク メモリ オブジェクトへのハンドル。 このオブジェクトは、 ValueName が指す値名に割り当てられるデータを含むバッファーを表します。
[in, optional] MemoryOffsets
Memory が指定するバッファーのサブセクションを識別するドライバー指定のWDFMEMORY_OFFSET構造体へのポインター。 このパラメーターは省略可能であり、 NULL にすることができます。
戻り値
操作が成功した場合、WdfRegistryAssignMemory はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
IRQL = PASSIVE_LEVEL で WdfRegistryAssignMemory が呼び出されませんでした。 |
|
無効なパラメーターが指定されました。 |
|
ドライバーが、KEY_SET_VALUE アクセス権を持つレジストリ キーを開けませんでした。 |
|
MemoryOffsets パラメーターが指定したWDFMEMORY_OFFSET構造体の内容が無効です。 |
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
ValueName パラメーターで指定されている値名が既に存在する場合、WdfRegistryAssignMemory は値のデータを更新します。
レジストリ キー オブジェクトの詳細については、「 Framework-Based ドライバーでのレジストリの使用」を参照してください。
例
次のコード例では、フレームワーク メモリ オブジェクトを作成し、偽のデータを含むオブジェクトのバッファーを読み込み、バッファーの内容をレジストリ値に割り当てます。
PUCHAR pBuffer;
WDFMEMORY memory;
NTSTATUS status;
UCHAR i;
DECLARE_UNICODE_STRING_SIZE(valueName, L"MyValueName");
status = WdfMemoryCreate(
WDF_NO_OBJECT_ATTRIBUTES,
NonPagedPool,
0,
MEMORY_LENGTH,
&memory,
(PVOID*)&pBuffer
);
if (NT_SUCCESS(status)) {
// Fill the buffer with fake data.
for (i = 1; i <= MEMORY_LENGTH; i++) {
pBuffer[i-1] = i;
}
status = WdfRegistryAssignMemory(
Key,
&valueName,
REG_BINARY,
memory,
NULL
);
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 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) |