Árvore de Dispositivos

O gerenciador PnP mantém uma árvore de dispositivos que controla os dispositivos no sistema. A figura a seguir mostra a árvore de dispositivos para uma configuração de sistema de exemplo.

árvore de dispositivo pnp de exemplo.

A árvore de dispositivos contém informações sobre os dispositivos presentes no sistema. O gerenciador PnP cria essa árvore quando o computador é inicializado, usando informações de drivers e outros componentes, e atualiza a árvore à medida que os dispositivos são adicionados ou removidos.

Cada nó da árvore de dispositivos é chamado de nó de dispositivo ou devnode. Um devnode consiste nos objetos do dispositivo para os drivers do dispositivo, além de informações internas mantidas pelo sistema. Portanto, há um devnode para cada pilha de dispositivos.

O gerente do PnP pede a um motorista de ônibus uma lista de seus dispositivos filho usando uma solicitação de IRP_MN_QUERY_DEVICE_RELATIONS . O motorista do ônibus determina sua lista de crianças de acordo com seu protocolo de ônibus. Por exemplo, o driver ACPI do Windows, Acpi.sys, examina o namespace ACPI, o driver PCI consulta o espaço de configuração PCI e um driver de hub USB segue o protocolo de barramento USB.

A árvore de dispositivos é hierárquica, com dispositivos em um barramento representados como "filhos" do adaptador de barramento, controlador ou outro dispositivo de barramento. (Um dispositivo de barramento é qualquer dispositivo ao qual outros dispositivos físicos, lógicos ou virtuais podem ser anexados.) Você pode ver a hierarquia de dispositivos na árvore de dispositivos usando Gerenciador de Dispositivos e escolhendo a opção de exibição que permite exibir dispositivos por conexão.

A hierarquia da árvore de dispositivos reflete a estrutura na qual os dispositivos estão anexados no computador. O gerenciador PnP usa essa hierarquia à medida que gerencia os dispositivos. Por exemplo, se um usuário solicitar para desconectar o controlador USB do computador representado pela figura anterior, o gerenciador PnP determinará na árvore de dispositivos que essa ação resultaria em três outros dispositivos também sendo desconectados (o hub USB, o joystick e a câmera). Quando o gerenciador PnP consulta os drivers do controlador USB para determinar se é seguro remover o controlador, ele também consulta os drivers dos descendentes do controlador (o hub, o joystick e a câmera).

A árvore de dispositivos é dinâmica. À medida que os dispositivos são adicionados e removidos do computador, o gerenciador PnP (juntamente com drivers) mantém uma imagem atual dos dispositivos no sistema.

Há outras relações entre dispositivos no computador além das relações hierárquicas representadas na árvore de dispositivos. Isso inclui relações de remoção e ejeção. Consulte a página de referência para IRP_MN_QUERY_DEVICE_RELATIONS para obter mais informações.

Você não pode fazer suposições sobre a ordem na qual a árvore de dispositivos é criada, exceto que um dispositivo de barramento é configurado antes de qualquer um de seus dispositivos filho. Por exemplo, você não deve pressupor que um dispositivo em um ônibus esteja configurado antes de outro dispositivo no barramento.