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


Обзор возможностей съемных устройств

Возможность съемных устройств — это бит (съемный), который драйверы шины задают в DEVICE_CAPABILITIES структуре в ответ на код функции IRP_MN_QUERY_CAPABILITIES для указанного узла устройства (devnode).

Драйверы шины задают возможность съемных устройств для devnode, когда devnode и все его дочерние devnodes составляют устройство, которое можно физически удалить, отключить или отключить от родительского devnode во время работы компьютера. Как правило, devnode следует пометить как съемный, если это самый верхний devnode в топологии devnode.

Важно правильно настроить возможность съемных устройств на devnode. Если драйвер шины не может предоставить идентификатор контейнера для перечисляемого devnode, диспетчер Plug and Play (PnP) использует возможность съемных устройств для создания идентификатора контейнера для всех перечисленных для устройства devnodes.

Например, предположим, что устройство с одной функцией, например мышь, подключено к компьютеру через USB. В этом случае драйвер шины USB обнаруживает новое устройство, определяет, что оно является устройством HID USB, и создает для устройства devnode USB HID. HiD devnode также обнаруживает, что устройство HID является мышью, и создает дочерний devnode для hid-совместимой мыши. На этом этапе мышь установлена и работает на компьютере. Оба новых devnodes используют независимые стеки драйверов.

Как правило, самый верхний (родительский) devnode устройства должен быть установлен как съемный, в то время как каждый из его дочерних devnods не должен быть съемным. В предыдущем примере драйвер USB-шины устанавливает для съемного бита значение TRUE для usb HID devnode, а для съемного бита устанавливается значение FALSE для дочернего HID-совместимого devnode мыши.

На следующем диспетчер устройств снимке экрана показана топология devnode для универсальной USB-мыши и показано, какие devnodes мыши помечены как съемные.

Снимок экрана: окно диспетчера устройств с топологией devnode для usb-мыши.