Как я могу предотвратить появление "Извлечь <устройство>" после установки устройства на основе WinUSB?
Резюме
Я разрабатываю установщик для приложения, которое включает в себя установку USB-устройства на основе WinUSB. Все работает, за исключением раздражающей проблемы, при которой USB-устройство появляется на панели уведомлений после установки с возможностью безопасного удаления:
Я не хочу, чтобы эта опция появлялась, но я не знаю, как ее предотвратить. Я полагаю, что это возможно сделать, добавив правильные директивы в INF-файл для устройства, но Microsoft проделала фантастическую работу, сделав формат INF-файла глупо слишком сложным, и у меня возникли проблемы с определением, что именно делать из документов.
Что я пробовал
Документы Microsoft на самом деле не достаточно полезны, но мне удалось найти старый документ под названием " Проектирование оборудования для удаления сюрпризов" под Windows XP, который казался многообещающим:
Исходя из этого, я попытался добавить следующее содержимое в мой INF-файл:
[USB_Install.HW]
...
AddReg=Dev_AddReg_HW_Removal_Policy
[Dev_AddReg_HW_Removal_Policy]
HKR,,"RemovalPolicy",0x00010001,2
После установки этого драйвера я зашел в диспетчер устройств и смог подтвердить, что для свойства "Политика удаления" установлено значение 00000002
(это было 00000003
до). Тем не менее, устройство все еще обнаружилось с опцией "Извлечь".
Моя следующая попытка была с "Безопасное удаление требуется", который в настоящее время настроен на <true>
, Я попытался включить директиву об этом в мой INF-файл:
[USB_Install.HW]
...
AddReg=Dev_AddReg_HW_Removal_Policy
AddReg=Dev_AddReg_HW_Safe_Removal_Required
[Dev_AddReg_HW_Removal_Policy]
HKR,,"RemovalPolicy",0x00010001,2
[Dev_AddReg_HW_Safe_Removal_Required]
HKR,,"SafeRemovalRequired",0x00010001,0
я использовал infverif
чтобы подтвердить, что мой INF-файл действителен, но после установки этой версии драйвера свойство "Безопасное удаление требуется" все еще имеет значение <true>
и устройство все еще имеет функцию извлечения.
Кто-нибудь достаточно знаком с извилистым (и весьма откровенно отсталым) форматом INF, чтобы подсказать, что мне нужно изменить, чтобы опция "Извлечь" исчезла?