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 |
Header | wudfddi.h (Wudfddi.h を含む) |
[DLL] | WUDFx.dll |