Перенос 32-битного Windows-драйвера на 64-битную Windows - PullRequest
8 голосов
/ 05 июля 2010

Поскольку наши приложения работают в полноэкранном режиме, мы разработали драйвер перехвата клавиатуры, чтобы отключить пользовательский ввод для таких клавиш, как ALT+F4, CTRL+ALT+DEL и т. Д.

Драйвер разработан на C с использованием Windows Driver Kit.

Компиляция для 32-разрядной системы работает, загружает драйвер на 32-разрядную версию Windos 7 и работает как положено.

Компиляция для 64-битной системы работает, и она просто не загружает драйвер в Windows 7 64-битной версии (но подписана и указана в драйверах клавиатуры).

Ниже приведены наши SetEnv настройки:

setenv c:\WinDDK\7600.16385.1 fre x64

Есть что-то, что я пропускаю?

Нужно ли вносить конкретные изменения в код, чтобы он работал на 64-разрядных системах?

1 Ответ

3 голосов
/ 24 сентября 2010

Опция сборки выглядит правильно. Вам не нужно вносить изменения в код, если только в коде нет предположений о таких вещах, как размер указателей, целые числа и т. Д. Сценарии, которые «устанавливают» драйверы путем перебора реестра и т. Д., Могут не работать.

Драйверы в Win7 64 bit должны быть либо WHQL-тестом, подписанным Microsoft, либо тестом, подписанным вами, либо подписанным доверенным сертификатом.

Первый просто устанавливает. Второй требует загрузки с параметром конфигурации подписи теста. Третий будет отображать предупреждение при установке, спрашивая вас, доверяете ли вы провайдеру.

Обычно во время разработки вы тестируете подпись драйвера: Инструкция MSDN по тестовой подписи пакета драйвера

...