Вот что я делаю:
1. Загрузите устройство Windows Mobile
2. Создайте ключ реестра HKLM\Drivers\BuiltIn\<mydriver>
для моего теста Драйвер с помощью RegCreateKeyEx
и настройте реестрвведите RegSetValueEx
(со значениями IClass, Flags, Dll и Order), чтобы мой драйвер загружался при последующих «теплых» загрузках
3. Перезагрузите устройство (мой тестовый драйвер загружается и делает то, что должен делать, как ожидается)
4. Используйте FindFirstDevice(DeviceSearchByGuid, ...)
, чтобы получить дескриптор моего драйвера ( Проблема # 1: это происходит с ошибкой с кодом 0x12, означающей, что он не смог найти мое устройство с указанным GUID ).Я предполагаю, что мой драйвер будет объявлен, когда он будет загружен после перезагрузки, так как я определил значение IClass в его реестре.
5. Используйте ручку для выгрузки моего драйвера
6. Удалите созданный мной ключ реестра.выше в # 2 ( Проблема № 2: это происходит с ошибкой с кодом 0x5 - error_access_denied )
Примечание: шаги 2, 4, 5, 6 выполняются с использованием моего теста application
Наблюдение:
1. Я могу удалить ключ после его создания, пока устройство не перезагружено.Тем не менее, я получаю сообщение об ошибке «Отказано в доступе», когда создаю ключ и пытаюсь удалить его после перезагрузки устройства.
2. Я попытался удалить код, который загружает драйвер после перезагрузки (установив для флага DEVFLAGS_NOLOAD) значениепосмотрите, связано ли это с проблемой разрешения при попытке удалить реестр.Я все еще не мог удалить реестр.