WdfRegistryQueryUnicodeString 関数 (wdfregistry.h)
[KMDF と UMDF に適用]
WdfRegistryQueryUnicodeString メソッドは、指定されたレジストリ文字列値に現在割り当てられている文字列データを取得し、指定したUNICODE_STRING構造体に文字列をコピーします。
構文
NTSTATUS WdfRegistryQueryUnicodeString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[out, optional] PUSHORT ValueByteLength,
[in, out] PUNICODE_STRING Value
);
パラメーター
[in] Key
開かれたレジストリ キーを表すレジストリ キー オブジェクトへのハンドル。
[in] ValueName
レジストリ値の名前を含む UNICODE_STRING 構造体へのポインター。
[out, optional] ValueByteLength
Value が指す Unicode 文字列に含まれるバイト数 (終端の NULL バイトを含む) を受け取る場所へのポインター。 このポインターは省略可能であり、NULL にすることができます
[in, out] Value
Key が指定するキーのデータ文字列を受け取るUNICODE_STRING構造体へのポインター。 このパラメーターが NULL で 、ValueByteLength が NULL 以外の場合、 WdfRegistryQueryUnicodeString は文字列のサイズのみを返します。
戻り値
操作が成功した場合、WdfRegistryQueryUnicodeString はSTATUS_SUCCESSを返します。 それ以外の場合、メソッドは次のいずれかの値を返す可能性があります。
リターン コード | 説明 |
---|---|
|
IRQL = PASSIVE_LEVELで WdfRegistryQueryUnicodeString が呼び出されませんでした。 |
|
無効なパラメーターが指定されました。 |
|
操作を完了するためのメモリが不足していました。 |
|
ドライバーは、KEY_QUERY_VALUE、KEY_READ、またはKEY_ALL_ACCESSアクセスでレジストリ キーを開けませんでした。 |
|
ValueName パラメーターが指定したレジストリ値のデータ型がREG_SZされませんでした。 |
|
Value パラメーターが指すバッファーが小さすぎて、部分的なデータのみがバッファーに書き込まれた。 |
|
Value パラメーターが指すバッファーが小さすぎて、バッファーにデータが書き込まれなかった。 |
|
レジストリ値が使用できませんでした。 |
このメソッドは、他の NTSTATUS 値を返す場合もあります。
ドライバーが無効なオブジェクト ハンドルを提供すると、バグ チェックが発生します。
注釈
レジストリ キー オブジェクトの詳細については、「 Framework-Based ドライバーでのレジストリの使用」を参照してください。
例
シリアル サンプル ドライバー の次のコード例では、デバイスのハードウェア キーの 下の PortName 値に割り当てられている文字列データを表す Unicode 文字列を取得します。
NTSTATUS
SerialReadSymName(
IN WDFDEVICE Device,
__out PWCHAR RegName,
IN OUT PUSHORT LengthOfRegName // In characters
)
{
NTSTATUS status;
WDFKEY hKey;
UNICODE_STRING value;
UNICODE_STRING valueName;
USHORT requiredLength;
value.Buffer = RegName;
value.MaximumLength = *LengthOfRegName;
value.Length = 0;
status = WdfDeviceOpenRegistryKey(
Device,
PLUGPLAY_REGKEY_DEVICE,
STANDARD_RIGHTS_ALL,
WDF_NO_OBJECT_ATTRIBUTES,
&hKey
);
if (NT_SUCCESS (status)) {
RtlInitUnicodeString(
&valueName,
L"PortName"
);
status = WdfRegistryQueryUnicodeString (
hKey,
&valueName,
&requiredLength,
&value
);
WdfRegistryClose(hKey);
}
return status;
}
要件
要件 | 値 |
---|---|
対象プラットフォーム | ユニバーサル |
最小 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) |