#c #windows #32bit-64bit #device-driver
#c #Windows #32bit-64bit #драйвер устройства
Вопрос:
существуют ли какие-либо особенности при разработке драйвера устройства (в режиме ядра) для 32-разрядной версии Windows 7 или 64-разрядной версии Windows 7? Могу ли я разрабатывать на какой-либо платформе и готовить сборки для запуска на другой? Спасибо.
Ответ №1:
Вам нужен комплект драйверов для Windows. Да, вы должны уметь выполнять кросс-компиляцию.
Комментарии:
1. Да, спасибо. Но существуют ли какие-либо особенности API для 64-разрядной платформы? Например. использование других типов данных или что-то в этом роде…
Ответ №2:
Для этого и существует MSDN: проектирование 64-разрядной системы
Ответ №3:
Если вы не делаете ничего смешного, для создания 64-разрядного драйвера не должно потребоваться никаких изменений, за исключением перестройки.
Комментарии:
1. Вопрос заключается в объяснении того, что это за «забавные» методы, например, вставка указателей в целые числа довольно популярна и, безусловно, несовместима с 32-разрядными целыми числами.
2. Я не могу представить, что заполнение указателей целыми числами происходит часто. Зачем вам делать это в своем собственном коде? В API-интерфейсах может быть что-то похожее на передачу указателя на LPARAM / WPARAM (не припомню ничего подобного в DDK, поэтому я привожу пример пользовательского режима), но в этих случаях вы доверяете Microsoft определять LPARAM безопасным способом.
Ответ №4:
Вот некоторые возможные ошибки в исходном коде, которые могут возникнуть при переходе с 32-разрядных версий на 64-разрядные.