Compartir a través de


Cómo se generan los identificadores de contenedor a partir de la funcionalidad de dispositivo extraíble

Si un controlador de bus no puede proporcionar un identificador de contenedor para un nodo de dispositivo (devnode) que está enumerando, el administrador de Plug and Play (PnP) usa la funcionalidad de dispositivo extraíble para generar un identificador de contenedor para todos los nodos de desarrollo enumerados para el dispositivo. Para obtener más información sobre la funcionalidad del dispositivo extraíble, consulte Información general sobre la funcionalidad de dispositivo extraíble.

En la siguiente heurística se describe cómo se generan los identificadores de contenedor a partir de la funcionalidad del dispositivo extraíble:

  1. Si el devnode tiene la funcionalidad de dispositivo extraíble establecida en TRUE, genere un nuevo identificador de contenedor para el devnode.

  2. Si el devnode tiene la funcionalidad de dispositivo extraíble establecida en FALSE, herede el identificador de contenedor de su nodo primario devnode.

Un devnode no puede enumerar los nodos secundarios hasta que se inicialice y se inicie su pila de controladores . En cuanto se asigna su identificador de contenedor durante la inicialización, el devnode está listo para propagar su identificador de contenedor a cualquiera de sus elementos secundarios no extraíbles a medida que se enumeran.

Un nodo devnode con la funcionalidad del dispositivo extraíble establecida en TRUE se considera el nodo devnode más alto (primario) del dispositivo y se genera un identificador de contenedor para este devnode.

Todos los elementos secundarios de este nodo primario heredan el mismo identificador de contenedor a menos que tengan su capacidad de dispositivo extraíble establecida en TRUE. En este caso, a un nodo secundario extraíble se le asigna un identificador de contenedor diferente y se convierte en el nodo primario de este dispositivo extraíble. Todos los elementos secundarios de ese nodo dev heredan el mismo identificador de contenedor.

Por ejemplo, supongamos que un mouse de una sola función está conectado al equipo a través de USB. En este caso, el controlador del bus USB detecta un nuevo dispositivo y detecta que es un dispositivo de interfaz humana (HID) USB. A continuación, el controlador de bus USB crea un devnode USB HID para el dispositivo. El devnode HID también detecta que el dispositivo HID es un mouse y crea un devnode secundario para un mouse compatible con HID.

La aplicación de esta heurística a este ejemplo da como resultado las siguientes acciones:

  1. Se crea el devnode USB HID. La funcionalidad del dispositivo extraíble se establece en TRUE en este devnode porque su nodo principal del concentrador USB reconoció que estaba conectado a un puerto USB orientado al externo.

  2. Se crea un identificador de contenedor para este devnode porque es el nodo de desarrollo superior de un dispositivo extraíble. Como resultado, este nodo devnode se considera el nodo primario para el dispositivo extraíble.

  3. Se crea el devnode del mouse compatible con HID. La funcionalidad del dispositivo extraíble se establece en FALSE en este nodo de desarrollo porque su nodo DEvNODE USB primario notifica todos sus elementos secundarios como no extraíbles. En este caso, el devnode del mouse compatible con HID hereda el identificador de contenedor del nodo primario.

A través de esta heurística, se asigna el mismo identificador de contenedor a cada nodo de desarrollo que pertenezca al mouse. El administrador de PnP agrupó correctamente los nodos de desarrollo en un dispositivo lógico, incluso cuando no hay ningún identificador único para el dispositivo.

Nota

El éxito de esta heurística se basa en un controlador de bus específico que informa correctamente de la funcionalidad del dispositivo extraíble para cada nodo de desarrollo que enumera. El controlador de bus debe asegurarse de que el nodo devnode primario del dispositivo debe establecerse como extraíble y sus nodos secundarios no deben establecerse como extraíbles.