Vue d’ensemble de la fonctionnalité d’appareil amovible
La fonctionnalité de périphérique amovible est un bit (amovible) défini par les pilotes de bus dans la structure DEVICE_CAPABILITIES en réponse au code de fonction IRP_MN_QUERY_CAPABILITIES pour un nœud de périphérique (devnode) spécifié.
Les pilotes de bus définissent la fonctionnalité de périphérique amovible pour un devnode lorsque le devnode et tous ses devnodes enfants composent un appareil qui peut être physiquement supprimé, déconnecté ou débranché de son devnode parent pendant l’exécution de l’ordinateur. En règle générale, un devnode doit être marqué comme amovible s’il s’agit du devnode le plus haut dans une topologie devnode.
Il est important de définir correctement la fonctionnalité d’appareil amovible sur un devnode. Si un pilote de bus ne peut pas fournir un ID de conteneur pour un devnode qu’il énumére, le gestionnaire Plug-and-Play (PnP) utilise la fonctionnalité de périphérique amovible pour générer un ID de conteneur pour tous les devnodes énumérés pour l’appareil.
Par exemple, supposons qu’un appareil à fonction unique, tel qu’une souris, soit connecté à l’ordinateur via usb. Dans ce cas, le pilote de bus USB détecte le nouveau périphérique, détecte qu’il s’agit d’un périphérique d’interface humaine USB (HID) et crée un devnode HID USB pour l’appareil. Le devnode HID détecte également que l’appareil HID est une souris et crée un devnode enfant pour une souris compatible HID. À ce stade, la souris est installée et fonctionne sur l’ordinateur. Les deux nouveaux devnodes utilisent des piles de pilotes indépendantes.
En règle générale, le devnode le plus haut (parent) de l’appareil doit être défini comme amovible, tandis que chacun de ses devnodes enfants ne doit pas être défini comme amovible. Dans l’exemple précédent, le pilote de bus USB définit le bit amovible sur TRUE pour le devnode HID USB et définit le bit amovible sur FALSE pour le devnode de souris compatible HID enfant.
La capture d’écran Gestionnaire de périphériques suivante montre la topologie devnode d’une souris USB générique et les devnodes de la souris qui sont marqués comme amovibles.