Bagikan melalui


Metode IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore (wudfddi.h)

[Peringatan: UMDF 2 adalah versi terbaru UMDF dan pengganti UMDF 1. Semua driver UMDF baru harus ditulis menggunakan UMDF 2. Tidak ada fitur baru yang ditambahkan ke UMDF 1 dan ada dukungan terbatas untuk UMDF 1 pada versi Windows 10 yang lebih baru. Driver Universal Windows harus menggunakan UMDF 2. Untuk informasi selengkapnya, lihat Mulai menggunakan UMDF.]

Metode RetrieveUnifiedDevicePropertyStore mengambil antarmuka penyimpanan properti terpadu.

Sintaks

HRESULT RetrieveUnifiedDevicePropertyStore(
  [in]  PWDF_PROPERTY_STORE_ROOT RootSpecifier,
  [out] IWDFUnifiedPropertyStore **PropertyStore
);

Parameter

[in] RootSpecifier

Alamat struktur WDF_PROPERTY_STORE_ROOT yang dialokasikan driver. Driver mengisi struktur ini untuk mengidentifikasi penyimpanan properti terpadu yang diambil RetrieveUnifiedDevicePropertyStore .

[out] PropertyStore

Alamat lokasi yang menerima pointer ke antarmuka IWDFUnifiedPropertyStore .

Nilai kembali

RetrieveUnifiedDevicePropertyStore mengembalikan S_OK jika operasi berhasil. Jika tidak, metode mungkin mengembalikan salah satu nilai berikut.

Menampilkan kode Deskripsi
E_INVALIDARG
Pemanggil menyediakan argumen input yang tidak valid.
E_OUTOFMEMORY
Upaya untuk mengalokasikan memori gagal.
 

Metode ini mungkin mengembalikan salah satu nilai lain yang dikandung Winerror.h .

Keterangan

Driver Anda dapat memanggil RetrieveUnifiedDevicePropertyStore untuk mendapatkan akses ke kunci perangkat keras perangkat saat ini atau kunci antarmuka perangkat yang didukung perangkat.

Anggota RootClass dari struktur WDF_PROPERTY_STORE_ROOT yang diarahkan oleh RootSpecifier harus diatur ke WdfPropertyStoreRootClassHardwareKey atau WdfPropertyStoreRootClassDeviceInterfaceKey.

Selain itu, jika RootClass diatur ke WdfPropertyStoreRootClassHardwareKey, maka anggota Qualifier.HardwareKey.ServiceName dari RootSpecifier harus NULL.

Untuk informasi selengkapnya tentang mengakses registri, lihat Menggunakan Registri di Driver berbasis UMDF.

Contoh

Contoh kode berikut mengambil antarmuka penyimpanan properti terpadu.

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;
}

Persyaratan

Persyaratan Nilai
Akhir dukungan Tidak tersedia di UMDF 2.0 dan yang lebih baru.
Target Platform Desktop
Versi UMDF minimum 1.11
Header wudfddi.h (termasuk Wudfddi.h)
DLL WUDFx.dll

Lihat juga

IWDFUnifiedPropertyStore

IWDFUnifiedPropertyStoreFactory