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로 설정해야 합니다.

또한 RootClassWdfPropertyStoreRootClassHardwareKey로 설정된 경우 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