Я создаю драйвер UMDF, который должен изменить яркость подсветки ЖК-дисплея.
Следующая строка кода работает в консольном приложении и успешно возвращает дескриптор устройства:
HANDLE hDevice = CreateFile(L"\\\\.\\LCD", GENERIC_READ | GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, 0, 0);
Тем не менее, когда я использую точно такой же кусок кода в моем драйвере, он возвращает INVALID_HANDLE_VALUE, а GetLastError () дает код 5, который «Доступ запрещен»
Драйвер отлаживается удаленно на компьютере под управлением Windows 7 x64 с использованием стандартного профиля WDKRemoteUser.
Кто-нибудь знает, в чем может быть проблема? Нужно ли устанавливать разрешения и, если да, то как?
Звучит так, как будто вам нужно выдавать себя за водителя клиента.
Драйверы UMDF обычно работают под учетной записью LocalService и не могут
доступ к файлам или ресурсам, которые требуют учетных данных пользователя, таких как
защищенные файлы или другие защищенные ресурсы. Драйвер UMDF обычно
работает с командами и данными, которые передаются между клиентским приложением
и устройство. Поэтому большинство драйверов UMDF не имеют доступа к защищенным
Ресурсы.Структура предоставляет возможность олицетворения, которая позволяет водителям
выдавать себя за клиента водителя и получать доступ клиента
права на охраняемые ресурсы.
Других решений пока нет …