2

Как Windows определяет категоризацию устройства в "Диспетчере устройств"?

Например, Диспетчер устройств перечисляет такие категории, как "Устройства обработки изображений", "Клавиатуры", «Звуковые, видео и игровые устройства» и т.д. - как Windows "узнает", как поместить устройство в какую-либо из этих категорий?

Как Windows решает, какое устройство и какое устройство, а затем помещает его в категорию?

Для справки, я понимаю, что Windows использует идентификаторы оборудования и поставщиков, чтобы "знать", что такое устройство, и что видимое наименование устройства происходит из исходного INF-файла. Но, насколько я понимаю, файлы INF не определяют категорию или тип устройства, поэтому мне интересно, как Windows делает это различие.

2 ответа2

4

Ваше понимание неверно - INF-файлы определяют категорию, в которую устройство войдет в диспетчере устройств. Windows классифицирует устройства на основе записей Class и ClassGuid в INF-файле, используемом для установки устройства.

Например, выберите «Диспетчер устройств» -> «Клавиатуры» -> «HID Keyboard Device» (предполагается) -> щелкните правой кнопкой мыши -> «Свойства» -> вкладка «Сведения» -> Раскрывающийся список свойств -> Руководство по классу устройства. Вы должны увидеть {4d36e96b-e325-11ce-bfc1-08002be10318} для GUID класса устройства. Это соответствует GUID для клавиатуры в ссылке MSDN «Системные классы настройки устройства, доступные для поставщиков» http://msdn.microsoft.com/en-us/library/ff553426%28v=vs.85%29.aspx

Вы даже можете создавать свои собственные категории диспетчера устройств. "Создание нового класса настройки устройства" http://msdn.microsoft.com/en-us/library/ff540189%28VS.85%29.aspx Но это, как правило, осуждается, и вы должны использовать существующие GUID класса в соответствующих случаях. Например, если вы решили использовать другой GUID класса для клавиатуры, (я думаю) операционная система не будет распознавать нажатые клавиши, даже если операционная система распознает само устройство (т. Е. Перечисляет, передает данные, но данные не попадают в системные буферы клавиатуры)

2

Это в основном ответственность водителя устройства. Windows представляет устройства по объектам устройства. Каждый объект устройства имеет тип устройства, который хранится в элементе DeviceType его структуры DEVICE_OBJECT. Тип устройства представляет тип базового оборудования для драйвера. См. Страницу источника ниже, а также соответствующую документацию MSDN о ядре и драйверах пользовательского режима, архитектуре модели драйверов Windows (WDM) и т.д.

Источник

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .