Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En esta sección se describen los objetos de dispositivo que puede crear un conjunto de controladores para el hardware USB. Ilustra los objetos de dispositivo WDM y cómo se superponen.
En la ilustración siguiente se muestran los objetos de dispositivo que crean los controladores de ejemplo. Para obtener más información, vea Capas de controladores de WDM: un ejemplo.
A partir de la parte inferior de esta ilustración, los objetos de dispositivo de las pilas de dispositivos de ejemplo incluyen:
Un PDO y un FDO para el bus PCI.
El controlador de bus raíz enumera el bus del sistema interno (el bus raíz) y crea un PDO para cada dispositivo que encuentra. Uno de estos PPO es para el bus PCI. (La figura no muestra el PDO y el FDO para el bus raíz).
El administrador de PnP identifica el controlador PCI como controlador de función para el bus PCI, carga el controlador (si aún no está cargado) y pasa el PDO al controlador PCI. En su rutina AddDevice , el controlador PCI crea un FDO para el bus PCI (IoCreateDevice) y conecta el FDO a la pila de dispositivos (IoAttachDeviceToDeviceStack) para el bus PCI. El controlador PCI crea y adjunta este FDO como parte de sus responsabilidades como controlador de funciones para el bus PCI.
En este ejemplo no se incluyen controladores de filtro para el bus PCI.
Un PDO y un FDO para el controlador de host USB.
El administrador de PnP dirige al controlador PCI para iniciar su dispositivo (IRP_MN_START_DEVICE) y, a continuación, consulta al controlador PCI para sus elementos secundarios (IRP_MN_QUERY_DEVICE_RELATIONS con el tipo de relación BusRelations). En respuesta, el controlador PCI enumera los dispositivos en su bus. En este ejemplo, el controlador PCI busca un controlador de host USB y crea un PDO para ese dispositivo. La flecha ancha de la ilustración indica que el controlador de host USB es un "elemento secundario" del bus PCI. El controlador PCI crea PDO para sus dispositivos hijo como parte de sus responsabilidades como controlador de autobús para el bus PCI.
El administrador de PnP identifica al controlador de clase del controlador de host USB y su minicontrolador como el controlador de función para el controlador de host USB y carga ambos controladores. El administrador de PnP llama al par de controladores en el momento adecuado para crear y conectar un FDO para el controlador de host USB.
En este ejemplo no se incluyen controladores de filtro para el controlador de host USB.
Un PDO y un FDO para el concentrador USB.
El controlador de host USB enumera su bus, localiza el concentrador USB en el único puerto y crea un PDO para el concentrador. El controlador del concentrador USB crea y conecta un FDO para el concentrador.
En este ejemplo no se incluyen controladores de filtro para el concentrador USB.
Un PDO, un FDO y dos DOs de filtro para el dispositivo de palanca de mando.
El controlador del concentrador USB enumera su bus, localiza un dispositivo HID (el joystick) y crea un PDO para el joystick.
En este ejemplo, se configura un controlador de filtro de nivel inferior en el registro para dispositivos joystick, por lo que el administrador de PnP carga el controlador de filtro. El controlador de filtro determina que es relevante para el dispositivo y crea y adjunta un do de filtro a la pila de dispositivos.
El administrador PnP determina que el controlador funcional para el dispositivo de joystick es el par de controladores de la clase/miniclase HID y carga estos controladores. El par de controladores consta de un controlador de mini-clase vinculado a una DLL de controlador de clase. Juntos actúan como un controlador de función para el dispositivo. El par de controladores de clase/miniclase crea un objeto de dispositivo, el FDO y lo asocia a la pila de dispositivos.
Un controlador de filtro de nivel superior crea y adjunta un DO de filtro a la pila de dispositivos, de manera similar al filtro de nivel inferior.
El controlador primario del bus siempre crea el PDO en la parte inferior de la pila de dispositivos para un dispositivo determinado. Cuando los controladores manejan PnP o IRP de energía, deben pasar cada IRP a lo largo de la pila del dispositivo hasta el PDO y a su controlador de bus asociado.
En la ilustración siguiente se muestran las mismas pilas de dispositivos que la ilustración anterior, pero resalta qué objetos de dispositivo crea y administra cada controlador.
Un controlador de bus abarca más de una pila de dispositivos. Un controlador de bus crea el FDO para su adaptador o controlador de bus y crea un PDO para cada uno de sus dispositivos secundarios.