IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore 方法 (wudfddi.h)

[警告: UMDF 2 是最新版的 UMDF,並取代 UMDF 1。 所有新的 UMDF 驅動程式都應該使用 UMDF 2 來撰寫。 未將新功能新增至 UMDF 1,而且較新版本的 #DF0CC4320C1EA4174967EEDCD90E66B72 上不支援 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。 否則,方法可能會傳回下列其中一個值。

傳回碼 Description
E_INVALIDARG
呼叫端提供無效的輸入自變數。
E_OUTOFMEMORY
嘗試配置記憶體失敗。
 

這個方法可能會傳回 Winerror.h 包含的其他其中一個值。

備註

您的驅動程式可以呼叫 RetrieveUnifiedDevicePropertyStore ,以取得裝置所支援目前裝置硬體密鑰或裝置介面密鑰的存取權。

RootSpecifier 所指向之WDF_PROPERTY_STORE_ROOT結構的 RootClass 成員必須設定為 WdfPropertyStoreRootClassHardwareKeyWdfPropertyStoreRootClassDeviceInterfaceKey

此外,如果 RootClass 設定為 WdfPropertyStoreRootClassHardwareKey則 RootSpecifierQualifier.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

另請參閱

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory