Método IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore (wudfddi.h)
[Aviso: UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser gravados usando UMDF 2. Nenhum novo recurso está sendo adicionado ao UMDF 1 e há suporte limitado para UMDF 1 em versões mais recentes do Windows 10. Os drivers universais do Windows devem usar o UMDF 2. Para obter mais informações, consulte Introdução com UMDF.]
O método RetrieveUnifiedDevicePropertyStore recupera uma interface unificada do repositório de propriedades.
Sintaxe
HRESULT RetrieveUnifiedDevicePropertyStore(
[in] PWDF_PROPERTY_STORE_ROOT RootSpecifier,
[out] IWDFUnifiedPropertyStore **PropertyStore
);
Parâmetros
[in] RootSpecifier
O endereço de uma estrutura de WDF_PROPERTY_STORE_ROOT alocada pelo driver. O driver preenche essa estrutura para identificar o repositório de propriedades unificado recuperado por RetrieveUnifiedDevicePropertyStore .
[out] PropertyStore
O endereço de um local que recebe um ponteiro para uma interface IWDFUnifiedPropertyStore .
Retornar valor
RetrieveUnifiedDevicePropertyStore retornará S_OK se a operação for bem-sucedida. Caso contrário, o método poderá retornar um dos valores a seguir.
Código de retorno | Descrição |
---|---|
|
O chamador forneceu um argumento de entrada inválido. |
|
Falha ao tentar alocar memória. |
Esse método pode retornar um dos outros valores que Winerror.h contém.
Comentários
Seu driver pode chamar RetrieveUnifiedDevicePropertyStore para obter acesso à chave de hardware de um dispositivo atual ou a uma chave de interface do dispositivo compatível com o dispositivo.
O membro RootClass da estrutura WDF_PROPERTY_STORE_ROOT apontada por RootSpecifier deve ser definido como WdfPropertyStoreRootClassHardwareKey ou WdfPropertyStoreRootClassDeviceInterfaceKey.
Além disso, se RootClass estiver definido como WdfPropertyStoreRootClassHardwareKey, o membro Qualifier.HardwareKey.ServiceName do RootSpecifier deverá ser NULL.
Para obter mais informações sobre como acessar o registro, consulte Usando o Registro em Drivers baseados em UMDF.
Exemplos
O exemplo de código a seguir recupera uma interface unificada do repositório de propriedades.
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;
}
Requisitos
Requisito | Valor |
---|---|
Fim do suporte | Indisponível no UMDF 2.0 e posterior. |
Plataforma de Destino | Área de Trabalho |
Versão mínima do UMDF | 1.11 |
Cabeçalho | wudfddi.h (inclua Wudfddi.h) |
DLL | WUDFx.dll |