다음을 통해 공유


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 반환합니다. 그렇지 않으면 메서드는 다음 값 중 하나를 반환할 수 있습니다.

반환 코드 묘사
E_INVALIDARG
호출자가 잘못된 입력 인수를 제공했습니다.
E_OUTOFMEMORY
메모리 할당 시도가 실패했습니다.
 

이 메서드는 winerror.h 포함하는 다른 값 중 하나를 반환할 수 있습니다.

발언

드라이버는 RetrieveUnifiedDevicePropertyStore 호출하여 현재 디바이스의 하드웨어 키 또는 디바이스가 지원하는 디바이스 인터페이스 키에 액세스할 수 있습니다.

RootSpecifier 가리키는 WDF_PROPERTY_STORE_ROOT 구조의 RootClass 멤버는 WdfPropertyStoreRootClassHardwareKey 또는 WdfPropertyStoreRootClassDeviceInterfaceKey 설정해야 합니다.

또한 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