WdfRegistryQueryString function (wdfregistry.h)
[Applies to KMDF and UMDF]
The WdfRegistryQueryString method retrieves the string data that is currently assigned to a specified registry string value and assigns the string to a specified framework string object.
Syntax
NTSTATUS WdfRegistryQueryString(
[in] WDFKEY Key,
[in] PCUNICODE_STRING ValueName,
[in] WDFSTRING String
);
Parameters
[in] Key
A handle to a registry-key object that represents an opened registry key.
[in] ValueName
A pointer to a UNICODE_STRING structure that contains a name for the registry value.
[in] String
A handle to a framework string object. The framework will assign the registry value's string data to this object.
Return value
WdfRegistryQueryString returns STATUS_SUCCESS if the operation succeeds. Otherwise, the method might return one of the following values:
Return code | Description |
---|---|
|
WdfRegistryQueryString was not called at IRQL = PASSIVE_LEVEL. |
|
An invalid parameter was specified. |
|
There was insufficient memory to complete the operation. |
|
The driver did not open the registry key with KEY_QUERY_VALUE, KEY_READ, or KEY_ALL_ACCESS access. |
|
The data type of the registry value that the ValueName parameter specified was not REG_SZ. |
|
The registry value was not available. |
|
The registry value exists under the specified key, but is empty. |
For a list of other return values that the WdfRegistryQueryString method might return, see Framework Object Creation Errors.
This method also might return other NTSTATUS values.
A bug check occurs if the driver supplies an invalid object handle.
Remarks
To obtain a string from a string object, your driver can call WdfStringGetUnicodeString.
For more information about registry-key objects, see Using the Registry in Framework-Based Drivers.
Examples
The following code example creates a string object, retrieves string data from a registry key, and obtains the string data from the string object.
UNICODE_STRING str;
WDFSTRING string;
NTSTATUS status;
DECLARE_CONST_UNICODE_STRING(valueName, STRING_VALUE_NAME);
status = WdfStringCreate(
NULL,
WDF_NO_OBJECT_ATTRIBUTES,
&string
);
if (NT_SUCCESS(status)) {
status = WdfRegistryQueryString(
Key,
&valueName,
string
);
if (NT_SUCCESS(status)) {
WdfStringGetUnicodeString(
string,
&str
);
}
}
Requirements
Requirement | Value |
---|---|
Target Platform | Universal |
Minimum KMDF version | 1.0 |
Minimum UMDF version | 2.0 |
Header | wdfregistry.h (include Wdf.h) |
Library | Wdf01000.sys (KMDF); WUDFx02000.dll (UMDF) |
IRQL | PASSIVE_LEVEL |
DDI compliance rules | DriverCreate(kmdf), KmdfIrql(kmdf), KmdfIrql2(kmdf), KmdfIrqlExplicit(kmdf) |