Partilhar via


Árvore de dispositivos

O gerenciador PnP mantém uma árvore de dispositivos que mantém o controle dos 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 a máquina é inicializada, 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 em objetos de dispositivo para os controladores do dispositivo, além de informações internas geridas pelo sistema. Portanto, há um devnode para cada pilha de dispositivos.

O gestor PnP solicita a um driver do barramento uma lista dos seus dispositivos filhos, 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, procura no 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 num barramento que são 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 conectados.) Pode ver a estrutura hierárquica de dispositivos na árvore de dispositivos usando o Gestor de Dispositivos e escolhendo a opção que permite visualizar dispositivos por conexão.

A hierarquia da árvore de dispositivos reflete a estrutura na qual os dispositivos estão conectados na máquina. O gerenciador PnP usa essa hierarquia como ele gerencia os dispositivos. Por exemplo, se um usuário solicitar a desconexão do controlador USB da máquina representada 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 para o controlador USB para determinar se é seguro remover o controlador, ele também consulta os drivers dos descendentes do controlador (o hub, joystick e câmera).

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

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

Não é possível fazer suposições sobre a ordem em que a árvore de dispositivos é construída, exceto que um dispositivo de barramento é configurado antes de qualquer um dos seus dispositivos filhos. Por exemplo, você não deve assumir que um dispositivo em um barramento está configurado antes de outro dispositivo no barramento.