Usando o Registro em Drivers UMDF 1.x

Aviso

O UMDF 2 é a versão mais recente do UMDF e substitui o 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. Drivers universais do Windows devem usar UMDF 2.

Os exemplos umdf 1 arquivados podem ser encontrados no Windows 11, versão 22H2 – Atualização de exemplos de driver de maio de 2022.

Para obter mais informações, consulte Introdução com UMDF.

Os drivers baseados em UMDF podem ler e gravar valores no Registro usando interfaces do objeto do repositório de propriedades.

Os drivers baseados em UMDF podem acessar quatro tipos de chaves do Registro. Os drivers podem criar, ler e gravar subchaves e valores nessas chaves. Os seguintes tipos de chaves do Registro estão disponíveis para drivers baseados em UMDF:

  • Chaves de hardware

    O gerenciador PnP cria uma chave de hardware, ou chave do dispositivo, para cada dispositivo, na qual armazena as informações de identificação exclusivas do dispositivo.

    O driver pode recuperar e modificar alguns dos valores de propriedade sob a chave de hardware. O local dos valores armazenados depende do método que você usa para acessá-los.

    Os valores de propriedade que foram criados usando métodos PropertyStore são armazenados na subchave \Device Parameters , na chave de hardware. Para acessar essas propriedades, o driver chama um dos métodos a seguir para obter uma interface de repositório de propriedades.

    IWDFDevice::RetrieveDevicePropertyStore
    Obtém um ponteiro para uma interface IWDFNamedPropertyStore .

    IWDFDeviceInitialize::RetrieveDevicePropertyStore
    Obtém um ponteiro para uma interface IWDFNamedPropertyStore .

    IWDFPropertyStoreFactory::RetrieveDevicePropertyStore
    Obtém um ponteiro para uma interface IWDFNamedPropertyStore2 . Você pode usar o parâmetro SubkeyPath para especificar valores em uma subchave criada pelo driver, como \Device Parameters\DriverServiceName\subkey.

    Os drivers têm acesso somente leitura a valores na subchave \Device Parameters e não podem acessar \Device Parameters\WDF ou \Device Parameters\WUDF.

    Os valores de propriedade que foram criados usando o modelo de Propriedade de Dispositivo Unificado são armazenados na subchave \Properties , sob a chave de hardware.

    Para acessar essas propriedades, seu driver chama IWDFUnifiedPropertyStoreFactory::RetrieveUnifiedDevicePropertyStore para obter uma interface de repositório de propriedades. Em seguida, o driver pode usar a interface IWDFUnifiedPropertyStore para modificar e recuperar as configurações atuais das propriedades do dispositivo.

  • Chaves de software

    A chave de software de um driver também é chamada de chave de driver porque o registro contém uma chave de software para cada driver. O registro contém uma lista de todas as classes de dispositivo e a chave de software de cada driver reside sob sua entrada de classe de dispositivo. O sistema armazena informações sobre cada driver sob sua chave de software.

    Seu driver pode chamar IWDFPropertyStoreFactory::RetrieveDevicePropertyStore para obter acesso de leitura ou gravação a valores sob sua chave de software. O driver pode ler e gravar informações específicas do driver que não estão associadas a dispositivos específicos.

  • Chaves de interface do dispositivo

    O registro contém chaves para todas as classes de interface do dispositivo que os drivers criaram. Em cada uma dessas chaves há uma entrada para cada instância da classe de interface do dispositivo que um driver registrou.

    Se o driver tiver registrado uma instância de uma classe de interface de dispositivo, ele poderá ler e gravar valores na entrada do Registro para essa instância chamando IWDFPropertyStoreFactory::RetrieveDevicePropertyStore. O driver pode ler e gravar informações específicas da instância sobre a interface do dispositivo.

  • A chave DEVICEMAP

    O registro contém uma chaveHKEY_LOCAL_MACHINE\HARDWARE\DEVICEMAP que alguns drivers para tecnologias mais antigas, como portas seriais e paralelas, usam. Se o driver der suporte a uma tecnologia que usa a chave DEVICEMAP , o driver poderá acessar subchaves e valores sob a chave chamando IWDFPropertyStoreFactory::RetrieveDevicePropertyStore.

Depois que um driver tiver chamado um dos métodos RetrieveDevicePropertyStore para abrir uma subchave do Registro, o driver poderá usar métodos expostos por IWDFNamedPropertyStore, IWDFNamedPropertyStore2 ou IWDFUnifiedPropertyStore para criar, ler e gravar valores em uma subchave. A interface IWDFNamedPropertyStore2 também permite que os drivers excluam valores.

Para obter mais informações sobre chaves do Registro para drivers, consulte Visão geral de árvores e chaves do Registro.