Поделиться через


Дерево устройств

Диспетчер PnP поддерживает дерево устройств, которое отслеживает устройства в системе. На следующем рисунке показано дерево устройства для примера конфигурации системы.

пример дерева устройств pnp.

Дерево устройств содержит сведения об устройствах, присутствующих в системе. Диспетчер PnP создает это дерево при загрузке компьютера, используя сведения из драйверов и других компонентов, и обновляет дерево по мере добавления или удаления устройств.

Каждый узел дерева устройств называется узлом устройства или devnode. Devnode состоит из объектов устройства для драйверов устройства, а также внутренней информации, поддерживаемой системой. Таким образом, для каждого стека устройств существует devnode.

Диспетчер PnP запрашивает у водителя автобуса список его дочерних устройств с помощью запроса IRP_MN_QUERY_DEVICE_RELATIONS . Водитель автобуса определяет список детей в соответствии с протоколом шины. Например, драйвер Windows ACPI, Acpi.sys, выполняет поиск в пространстве имен ACPI, драйвер PCI запрашивает пространство конфигурации PCI, а драйвер концентратора USB следует протоколу шины USB.

Дерево устройств является иерархическим, с устройствами в шине, представленными в виде "дочерних" адаптера шины, контроллера или другого устройства шины. (Устройство шины — это любое устройство, к которому можно подключить другие физические, логические или виртуальные устройства.) Иерархию устройств можно просмотреть в дереве устройств с помощью диспетчер устройств и выбора параметра представления, позволяющего просматривать устройства по подключению.

Иерархия дерева устройств отражает структуру, в которой устройства подключены к компьютеру. Диспетчер PnP использует эту иерархию для управления устройствами. Например, если пользователь запросит отключение USB-контроллера от компьютера, представленного на предыдущем рисунке, диспетчер PnP определяет, что это действие приведет к отключению трех других устройств (USB-концентратор, джойстик и камера). Когда диспетчер PnP запрашивает драйверы для USB-контроллера, чтобы определить, безопасно ли удалить контроллер, он также запрашивает драйверы потомков контроллера (концентратор, джойстик и камеру).

Дерево устройств является динамическим. По мере добавления устройств на компьютер и их удаления диспетчер PnP (вместе с драйверами) сохраняет текущую картину устройств в системе.

Существуют и другие связи между устройствами на компьютере, помимо иерархических связей, представленных в дереве устройств. К ним относятся отношения удаления и отношения извлечения. Дополнительные сведения см. на странице справочника по IRP_MN_QUERY_DEVICE_RELATIONS .

Вы не можете делать никаких предположений о порядке построения дерева устройств, за исключением того, что устройство шины настроено перед каким-либо из его дочерних устройств. Например, не следует предполагать, что одно устройство в шине настроено перед другим устройством в шине.