Partilhar via


Hierarquia de objetos do Framework

Advertência

UMDF 2 é a versão mais recente do UMDF e substitui UMDF 1. Todos os novos drivers UMDF devem ser escritos 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 UMDF 2.

Os exemplos de UMDF 1 arquivados podem ser encontrados na Windows 11, versão 22H2 - Atualização de Amostras de Driver de maio de 2022.

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

A figura a seguir mostra a hierarquia de objetos da estrutura pai-filho.

Hierarquia de objetos pai-filho UMDF.

O escopo do tempo de vida dos objetos de estrutura é determinado por sua localização na hierarquia e como os objetos são criados. O tempo de vida dos objetos de framework enquadra-se em uma das seguintes categorias:

  • A estrutura controla a criação e destruição dos objetos.

    A estrutura cria e destrói objetos, como o objeto de driver e o objeto de dispositivo, em resposta a eventos do sistema. Quando um driver de modo de usuário chama o método IWDFDriver::CreateDevice para criar o objeto de dispositivo, o driver pode, opcionalmente, registrar-se para ser notificado pela estrutura antes que o objeto de dispositivo seja destruído.

  • A estrutura cria o objeto; no entanto, o driver controla quando o objeto é liberado.

    O objeto de solicitação de E/S segue esse padrão quando a E/S é apresentada ao driver. A estrutura cria o objeto de solicitação e o tempo de vida do objeto de solicitação é válido até que o driver chame o método IWDFIoRequest::Complete .

  • O driver cria o objeto e associa o objeto a outro objeto de estrutura.

    Alguns objetos de estrutura são criados por um método que é exposto por uma instância de objeto de estrutura pai à qual os objetos devem ser associados para fins de gerenciamento de tempo de vida. O método IWDFDevice::CreateIoQueue é um exemplo desse padrão. Se uma chamada para IWDFDevice::CreateIoQueue for bem-sucedida, a fila de E/S recém-criada será associada à instância do dispositivo que a interface IWDFDevice representa. Quando o objeto pai é destruído, o framework limpa automaticamente as instâncias filhas. Os drivers são notificados desses eventos se os drivers registarem as funções de retorno de chamada apropriadas com o framework.