IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 方法 (wudfddi.h)
[警告: UMDF 2 是最新版本的 UMDF,并取代 UMDF 1。 所有新的 UMDF 驱动程序都应使用 UMDF 2 编写。 不会向 UMDF 1 添加任何新功能,并且较新版本的 Windows 10 上对 UMDF 1 的支持有限。 通用 Windows 驱动程序必须使用 UMDF 2。 有关详细信息,请参阅使用 UMDF 入门。]
RetrieveUnifiedDevicePropertyStore 方法检索统一的属性存储接口。
语法
HRESULT RetrieveUnifiedDevicePropertyStore(
[in] PWDF_PROPERTY_STORE_ROOT RootSpecifier,
[out] IWDFUnifiedPropertyStore **PropertyStore
);
参数
[in] RootSpecifier
驱动程序分配 的WDF_PROPERTY_STORE_ROOT 结构的地址。 驱动程序填充此结构以标识 RetrieveUnifiedDevicePropertyStore 检索的统一属性存储。
[out] PropertyStore
接收指向 IWDFUnifiedPropertyStore 接口的指针的位置的地址。
返回值
如果操作成功,RetrieveUnifiedDevicePropertyStore 将返回S_OK。 否则,方法可能会返回以下值之一。
返回代码 | 说明 |
---|---|
|
调用方提供的输入参数无效。 |
|
尝试分配内存失败。 |
此方法可能返回 Winerror.h 包含的其他值之一。
注解
驱动程序可以调用 RetrieveUnifiedDevicePropertyStore 来获取对当前设备硬件密钥或设备支持的设备接口密钥的访问权限。
RootSpecifier 指向的 WDF_PROPERTY_STORE_ROOT 结构的 RootClass 成员必须设置为 WdfPropertyStoreRootClassHardwareKey 或 WdfPropertyStoreRootClassDeviceInterfaceKey。
此外,如果 RootClass 设置为 WdfPropertyStoreRootClassHardwareKey,则 RootSpecifier 的 Qualifier.HardwareKey.ServiceName 成员必须为 NULL。
有关访问注册表的详细信息,请参阅 在基于 UMDF 的驱动程序中使用注册表。
示例
下面的代码示例检索统一属性存储接口。
HRESULT
GetDevicePropertyStore(
_In_ IWDFDevice * FxDevice,
_Out_ IWDFUnifiedPropertyStore ** ppUnifiedPropertyStore
)
{
HRESULT hr;
IWDFUnifiedPropertyStore * pUnifiedPropertyStore = NULL;
WDF_PROPERTY_STORE_ROOT RootSpecifier;
IWDFUnifiedPropertyStoreFactory * pUnifiedPropertyStoreFactory = NULL;
HRESULT hrQI = FxDevice->QueryInterface(
IID_PPV_ARGS(&pUnifiedPropertyStoreFactory)
);
WUDF_TEST_DRIVER_ASSERT(SUCCEEDED(hrQI));
RootSpecifier.LengthCb = sizeof(RootSpecifier);
RootSpecifier.RootClass = WdfPropertyStoreRootClassHardwareKey;
RootSpecifier.Qualifier.HardwareKey.ServiceName = NULL;
hr = pUnifiedPropertyStoreFactory->RetrieveUnifiedDevicePropertyStore(
&RootSpecifier,
&pUnifiedPropertyStore
);
if (FAILED(hr))
{
TraceEvents(
TRACE_LEVEL_ERROR,
TEST_TRACE_DEVICE,
"Failed to retrieve unified property store for device: ”
“hr = %!HRESULT!",
hr
);
goto exit;
}
*ppUnifiedPropertyStore = pUnifiedPropertyStore;
exit:
SAFE_RELEASE(pUnifiedPropertyStoreFactory);
return hr;
}
要求
要求 | 值 |
---|---|
结束支持 | 在 UMDF 2.0 及更高版本中不可用。 |
目标平台 | 桌面 |
最低 UMDF 版本 | 1.11 |
标头 | wudfddi.h (包括 Wudfddi.h) |
DLL | WUDFx.dll |