Драйвер шины (Bus Driver) фиксирует подключение и опрашивает конечную точку Control Endpoint 0 пакетом GET_DESCRIPTOR.
Формируется стек Hardware ID. Диспетчер PnP ищет соответствие в системном хранилище Driver Store по алгоритму ранжирования (Driver Ranking).
PnP Manager: FileRepositoryЗагружается функциональный драйвер (FDO). Ядро отправляет пакет IRP_MN_START_DEVICE. Устройство переводится в активное состояние D0.
Результат энумерации: Создание узла devnode в системном пространстве ядра, доступного для приложений через системные дескрипторы и API ввода-вывода.
VEN_10DE — Vendor ID производителя кристалла (10DE = NVIDIA).DEV_1F08 — Device ID конкретного чипа (TU106 / RTX 2060).SUBSYS_37551462 — Subsystem ID (1462 = MSI, 3755 = модель платы).REV_A1 — Аппаратная ревизия кремниевого кристалла.VID_046D — Vendor ID разработчика USB-устройства (046D = Logitech).PID_C52B — Product ID конкретного изделия (Unifying Receiver).REV_2411 — Ревизия прошивки в формате BCD (v24.11).USB\Class_03 — Совместимый класс (Compatible ID: HID).Текстовый конфигурационный скрипт. Содержит секции:
[Version] — класс и подпись[Manufacturer] — список вендоров[Models] — сопоставление Hardware ID с именами сервисовФайл цифровой подписи (Security Catalog). Содержит криптографические хэши (SHA-256) всех компонентов пакета, подписанные ключом сертификации Microsoft WHQL.
Исполняемый машинный код драйвера: .sys для ядра (Ring 0) или динамические библиотеки взаимодействия с пользовательскими приложениями.
Ring 0 — Режим ядра
Ring 3 — Режим пользователя
WUDFHost.exe.WHQL (Windows Hardware Quality Labs): официальная сертификация Microsoft. Гарантирует стабильность драйвера при стресс-нагрузках и соответствие стандартам энергосбережения.
Клавиатуры, мыши, сканеры штрихкодов. Драйвер hidusb.sys. Обмен данными через Report Descriptors, частота опроса до 1000 Гц.
Накопители данных. Драйвер usbstor.sys (BOT) и uaspstor.sys (UASP с поддержкой очередей команд SCSI NCQ до 32 потоков).
Веб-камеры и платы захвата. Драйвер usbvideo.sys. Прямая трансляция изохронного несжатого потока (YUY2) или потоков MJPEG/H.264.
UAC 1.0 (Full-Speed, до 96 кГц 24-бит стерео) и UAC 2.0 (High-Speed, до 384 кГц 32-бит многоканально, асинхронная тактовая частота).
TCP 9100
Прямой TCP-сокет. Минимум задержек и оверхеда. Промышленный корпоративный стандарт для статических IP-адресов.
TCP 515
Классический стек UNIX. Требует точного имени очереди печати (Queue: lp, raw). Медленнее RAW 9100.
TCP 631 (HTTP/S)
Современный веб-протокол. Шифрование TLS, контроль доступа, печать без драйверов (Mopria, AirPrint).
Использует мультикаст UDP 3702. В сегментированных сетях маршрутизаторы блокируют мультикаст между VLAN. При динамическом DHCP принтер периодически "исчезает" из сети. Решение: всегда фиксировать статический IP и порт Standard TCP/IP (RAW 9100).
Универсальный драйвер вендора. Динамически запрашивает возможности конкретного принтера по протоколу SNMP и на лету настраивает интерфейс пользователя (наличие дуплекса, лотков, финишеров).
Системный программный микшер Windows. Выполняет принудительную передискретизацию (SRC) и создает задержку 30–80 миллисекунд (непригодно для живой записи и мониторинга).
Steinberg Audio Stream Input/Output. Прямой доступ к аппаратному буферу звуковой карты USB. Сквозная задержка падает до 2–5 миллисекунд.
При частоте 48 кГц и буфере 64 сэмпла: $64 / 48000 pprox 1.33$ мс. Суммарная сквозная задержка тракта составляет около 4–5 мс.
Недостатки в производстве
Инженерный стандарт
CM_PROB_FAILED_START
Суть: Драйвер загружен, но сбойнул вызов старта (IRP_MN_START_DEVICE).
Причины: Сбой прошивки контроллера, конфликт памяти/прерываний, несовместимость версий.
CM_PROB_FAILED_INSTALL
Суть: Для устройства не найден подходящий драйвер.
Решение: Считать Hardware ID (VID/PID или VEN/DEV), найти соответствующий INF-файл и добавить в Driver Store.
FAILED_POSTING
Суть: Сбой дескриптора (Device Descriptor Request Failed).
Причины: Физический дефект! Просадка напряжения 5V, обрыв D+/D-, помехи кабеля. Драйвером не лечится!