WdfRegistryQueryValue 関数 (wdfregistry.h)
[KMDF と UMDF に適用]
WdfRegistryQueryValue メソッドは、指定されたレジストリ値に現在割り当てられているデータを取得します。
構文
NTSTATUS WdfRegistryQueryValue(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] ULONG ValueLength,
[out, optional] PVOID Value,
[out, optional] PULONG ValueLengthQueried,
[out, optional] PULONG ValueType
);
パラメーター
[in] Key
開かれたレジストリ キーを表すレジストリ キー オブジェクトへのハンドル。
[in] ValueName
値名を含む UNICODE_STRING 構造体へのポインター。
[in] ValueLength
Value が指 バッファーの長さ (バイト単位)。
[out, optional] Value
レジストリ値のデータを受け取るドライバー割り当てバッファーへのポインター。 このポインターが NULL 場合、WdfRegistryQueryValue データの長さを取得しますが、データは取得しません。
[out, optional] ValueLengthQueried
レジストリ値のデータ長を受け取る場所へのポインター。 このポインターは省略可能であり、NULL できます。
[out, optional] ValueType
レジストリ値のデータ型を受け取る場所へのポインター。 データ型の値の一覧については、KEY_VALUE_BASIC_INFORMATIONの Type メンバーを参照してください。 このポインターは省略可能であり、NULL できます。
戻り値
WdfRegistryQueryValue 、操作が成功した場合にSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 形容 |
---|---|
|
IRQL = PASSIVE_LEVEL で WdfRegistryQueryValue が呼び出されませんでした。 |
|
無効なパラメーターが指定されました。 |
|
ドライバーが、KEY_QUERY_VALUE、KEY_READ、またはKEY_ALL_ACCESSアクセス権を持つレジストリ キーを開けませんでした。 |
|
Value パラメーターが指すバッファーが小さすぎて、部分的なデータのみがバッファーに書き込まれています。 |
|
Value バッファーが小さすぎて、バッファーにデータが書き込まれなくなりました。 |
|
レジストリ値を使用できませんでした。 |
このメソッドは、他のNTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
備考
レジストリ キー オブジェクトの詳細については、「Framework-Based ドライバー でのレジストリの使用」を参照してください。
例
次のコード例では、デバイスのハードウェア キーを開き、NumberOfToasters 値に割り当てられているデータを取得します。この値は、デバイスのハードウェア キーの下に格納されます。
WCHAR comPort[FM_COM_PORT_STRING_LENGTH];
ULONG length;
NTSTATUS status;
ULONG length, valueType, value;
DECLARE_CONST_UNICODE_STRING(valueName, L"NumberOfToasters");
WDFKEY hKey;
status = WdfDeviceOpenRegistryKey(
Device,
PLUGPLAY_REGKEY_DEVICE,
KEY_QUERY_VALUE,
NULL,
&hKey
);
if (!NT_SUCCESS (status)) {
goto Error;
}
status = WdfRegistryQueryValue(
hKey,
&valueName,
sizeof(ULONG),
&value,
&length,
&valueType
);
必要条件
要件 | 価値 |
---|---|
ターゲット プラットフォーム の | 万国 |
最小 KMDF バージョン | 1.0 |
UMDF の最小バージョン を する | 2.0 |
ヘッダー | wdfregistry.h (Wdf.h を含む) |
ライブラリ | Wdf01000.sys (KMDF);WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI コンプライアンス規則 を する | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |
関連項目
WdfRegistryQueryMemory の
WdfRegistryQueryMultiString の