Búsqueda y apertura de una colección HID
En este artículo se describe cómo las aplicaciones en modo de usuario y los controladores en modo kernel buscan y abren una colección HID de nivel superior.
Aplicación en modo usuario
Microsoft Windows proporciona rutinas de instalación de dispositivos (funciones SetupDixxx) para buscar e identificar los dispositivos HIDClass. Windows proporciona otras funciones Win32 para inicializar y conectarse a una colección HID.
Después de cargar una aplicación en modo usuario, realiza la siguiente secuencia de operaciones:
Llama a HidD_GetHidGuid para obtener el GUID definido por el sistema para dispositivos HIDClass.
Llama a SetupDiGetClassDevs para obtener un identificador de un conjunto de información de dispositivo opaco que describe las interfaces de dispositivo compatibles con todas las colecciones HID instaladas actualmente en el sistema. La aplicación debe especificar DIGCF_PRESENT y DIGCF_DEVICEINTERFACE en el parámetro Flags que se pasa a SetupDiGetClassDevs.
Llama a SetupDiEnumDeviceInterfaces repetidamente para recuperar toda la información de interfaz disponible.
Llama a SetupDiGetDeviceInterfaceDetail para dar formato a la información de la interfaz de cada colección como una estructura SP_INTERFACE_DEVICE_DETAIL_DATA. El miembro DevicePath de esta estructura contiene el nombre del modo de usuario que usa la aplicación con la función Win32 CreateFile para obtener un identificador de archivo para una colección HID.
Llama a CreateFile para obtener un identificador de archivo a una colección HID.
Controlador en modo kernel
Si un controlador en modo kernel es un controlador de función o filtro, asocia un objeto de dispositivo a la pila de dispositivos de la colección HID. El controlador solo tiene que usar una solicitud de creación para abrir el dispositivo.
Si el controlador no es de función o filtro, normalmente usa la notificación Plug and Play para buscar una colección. Una vez que el controlador encuentra una colección, usa una solicitud de creación para abrir la colección.