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


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

Диспетчер 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.

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