0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 9
|
|
1 | |
X86 или x64 под Windows 10/x6427.04.2016, 09:39. Просмотров 4031. Ответов 9
Метки нет Все метки)
(
Только начинаю разбираться с написанием драйверов и как обычно уже миллион вопросов. Установлена Windows 10 x64/VS2015/WDK10.
Такие вопросы по совместимости: - возможно ли установить x86 драйвер на Windows 64-bit систему или драйвер под Windows64 должен быть ообязательно скомпилирован как x64 проект? - можно ли настроить дополнительные права для драйверов в процессе компиляции, как например для приложений - работа от имени администратора или от имени пользователя? - есть ли разграничение среды, для совместимости 32-битных драйверов на 64-битных системах как для приложений, когда приходится использовать функции типа Wow64DisableWow64FsRedirection? Дело в том, что есть проект, скомпилированный как x64, устанавливаю его с правами администратора с помощью "devcon.exe install" на Windows 10/64. Драйвер устанавливается, работает, но только в среде Администратора. От обычного пользователя если к нему обратиться - не работает. Или это он работает в 64-битной среде, а когда к нему обращаются 32-битные приложения - он с ними не работает? Нужно ли мне в данном случае перекомпилировать этот драйвер как x86 и устанавливать в каком-то специальном режиме для совместимости?
0
|
|
27.04.2016, 09:39 | |
Драйвер WinXP x86 поправить под Win7 x64 Переделка драйвера под Windows 10 x64 Портирование x86 драйвера USB на x64 Нужен пример простейшего драйвера на C/C++. Visual Studio 2008/новее. Win 8 x64, можно и XP x86 (а лучше оба) |
|
Ушел с форума
![]() |
|
27.04.2016, 11:25 | 2 |
Нет. Драйверы всегда должны быть той же разрядности, что и система.
Драйверы работают по-другому, не так, как приложения. Например, у них нет "своего" адресного пространства, они практически всегда работают или в контексте системы, или в контексте процесса, который вызвал конкретный обработчик. Поэтому понятие "запуск драйвера от имени администратора" бессмысленно. 32-битные драйверы вообще не работают на x64. Совсем. Так что в этом плане меньше путаницы. Драйвер может поставить на свои девайсы или другие объекты особые разрешения, которые позволят открывать их только определенным пользователям или группам. Возможно, это как раз такой случай. Все может быть. Драйвер, к примеру, может проверять, что к нему обратилось 32-битное приложение, а не 64-битное, и выдать ошибку. Ни то, ни другое, к драйверам не применимо. Как я уже писал выше, они всегда "правильной" разрядности, это во-первых, а во-вторых, никакие режимы совместимости на драйверы не распостраняются, это работает только для обычных приложений в user mode.
1
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 9
|
|
27.04.2016, 12:11 [ТС] | 3 |
0
|
Ушел с форума
![]() |
|
27.04.2016, 12:15 | 4 |
В коде.
Нет. Inf2Cat.exe к разрешениям вообще не имеет никакого отношения, эта утилита не подписывает драйвер, она просто генерирует каталог безопасности (.cat) - обычный файл, в котором хранятся хэши файлов из пакета драйвера.
0
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 9
|
|
27.04.2016, 12:41 [ТС] | 5 |
Но ведь в Inf2Cat.exe нужно перечислить ОСи с которыми совместим драйвер? Это ни на что не влияет, только на описание драйвера? Если я задам в Inf2Cat.exe только XP_X86, смогу ли я такой драйвер установить под Windows 10 x64?
0
|
Ушел с форума
![]() |
|
27.04.2016, 13:57 | 6 |
Это влияет на проверки, которые выполняет Inf2Cat.exe.
Сможешь или нет - это зависит от самого драйвера, от его разрядности и того, как он написан и скомпилирован. Inf2Cat тут никаким боком вообще, он лишь проверяет синтаксис INF-файла и генерирует по нему CAT-файл.
0
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 9
|
|
27.04.2016, 18:37 [ТС] | 7 |
А где можно подробнее почитать про эти особые разрешения и как они задаются? Не хочется сдаваться - драйвер реально работает, но только в среде Администратора. Как-то нужно заставить его работать для пользователя.
0
|
Ушел с форума
![]() |
|
27.04.2016, 18:51 | 8 |
Сначала нужно разобраться, что именно "не работает".
Не открывается какое-то устройство или коммуникационный порт или не расшаривается общая память или при отправке пакета ввода-вывода возвращается ошибка и т.д. И уже от полученных данных отталкиваться. Если исходников драйвера нет - тогда все очень плохо и шансов на успех очень мало.
0
|
0 / 0 / 0
Регистрация: 25.04.2016
Сообщений: 9
|
|
27.04.2016, 20:50 [ТС] | 9 |
Пытаюсь хоть немного разобраться с драйверами. У меня есть исходники. Это исходники из примера Майкрософт для виртуального RAMDisk. У меня получилось его скомпилировать и запустить под Windows 10 x64. Он устанавливается в систему и виден в Device Manager как нормально работающий. После установки появляется виртуальный диск R:. Если открывать его в Total Commander, то диск виден, но размер его 0 и пишет невозможно открыть диск. Если Total Commander открыть от имени администратора, то диск виден и полностью рабочий - на него можно писать файлы и удалять. Как его можно заставить работать для пользователя?
0
|
Ушел с форума
![]() |
|
27.04.2016, 21:02 | 10 |
Фреймворк KMDF для всех именованных device-объектов устанавливает
специальный дескриптор безопасности, который разрешает открывать их только членам группы "Администраторы" и системе. Об этом написано, например, здесь: Controlling Device Access in KMDF Drivers https://msdn.microsoft.com/win... df-drivers вызвать WdfDeviceInitAssignSDDLString, задав подходящую SDDL-строку, например такую: Код
// // Полный доступ (GA = GENERIC_ALL) для всех (WD = World) // D:P(A;;GA;;;WD) Controlling Device Access https://msdn.microsoft.com/ru-... s.85).aspx WdfDeviceInitAssignSDDLString method https://msdn.microsoft.com/lib... e/ff546035 SDDL for Device Objects https://msdn.microsoft.com/lib... e/ff563667 Проблема обсуждалась здесь: Need Windows 7 RamDisk Driver Assistance http://osronline.com/showThread.CFM?link=219449
1
|
27.04.2016, 21:02 | |
Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь. Переписать драйвер usb midi контроллера под x64 Возможно ли собрать усб-драйвер под Win7 x64 в DriverStudio 3.2?
Загрузка драйвера в windows 7 x64 Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |