Проблема разработки DDK / WDM ... драйвер не загружается на платформе Windows x64 - PullRequest
4 голосов
/ 17 марта 2010

Я новичок в области разработки драйверов DDK / WDM. У меня есть задача, которая включает портирование драйвера виртуального устройства с x86 на x64 (intel). Я получил исходный код, немного его изменил и успешно скомпилировал с помощью DDK (среды сборки). Но когда я попытался загрузить его на компьютер с Windows Server ia64, он не захотел загружаться. Затем я попробовал несколько простых примеров драйверов устройств из

- http://www.codeproject.com/KB/system/driverdev.aspx (я поставил '-', чтобы иметь возможность разместить гиперссылку) и из других ссылок, но все еще та же проблема.

Я слышал на форуме, что некоторые библиотеки, которые вы используете для связи, несовместимы с новыми машинами, и предлагали связать их с другими подобными библиотеками ... но все равно не работали.

При сборке я использую параметры командной строки "-cefw", как было предложено.

У меня нет ассоциированного файла * .inf, но я копирую его в system32 / drivers и использую WinObj, чтобы проверить, загружен ли он при следующей перезагрузке.

Я также пробовал эту программу (http://www.codeproject.com/KB/system/tdriver.aspx), чтобы загрузить драйвер в память, но у меня все равно не получилось.

Пожалуйста, пожалуйста, помогите мне ... Я застрял на этом, и мой срок уже прошел. Я чувствую, что я тут с ума схожу, пытаясь понять, что я делаю не так.

Ответы [ 3 ]

1 голос
/ 20 марта 2010

Итак, подведем итог всему:

  1. Вам необходимо собрать архитектуру с ядром (x64 для процессоров Intel / AMD).
  2. Вы ДОЛЖНЫ подписать свой драйвер. Вы должны сделать это даже в тестовом режиме с самозаверяющим сертификатом. Альтернативы нет.
  3. Вы ДОЛЖНЫ использовать для установки файл .inf. Если драйвер не pnp, то вам не нужен файл .inf, но очень маловероятно, что драйвер не pnp. В этом случае вам нужно вручную создать связанную службу для драйвера в диспетчере управления службами с помощью sc.exe или программно с помощью SCM API. Если драйвер isw pnp (скорее всего), вы должны установить его через файл .inf (с помощью devcon.exe или другим способом). Кроме того, его установка - это не то же самое, что его загрузка. Для этого должно присутствовать соответствующее оборудование или вы должны перечислить его в программном обеспечении (например, с помощью devcon.exe).
0 голосов
/ 18 марта 2010

Две вещи:

  1. Вы упоминаете и x64 (также называемый x86-64, AMD64 или EMT64) и IA64 (Itanium). Вы понимаете, что это две совершенно разные архитектуры, верно? У вас есть система Itanium? Если нет, вам не следует ничего компилировать, используя среду сборки IA-64. Он не будет работать на стандартном ПК (32 или 64).

  2. Для 64-разрядных драйвер должен иметь цифровую подпись для производственного использования. Вам нужно будет получить сертификат Authenticode от Verisign или аналогичный. В целях тестирования вы можете обойти проверку подписи, нажав F8 во время загрузки. Вы также можете подписать с тестовым сертификатом.

    http://www.microsoft.com/whdc/winlogo/drvsign/drvsign.mspx

0 голосов
/ 17 марта 2010

Я не написал драйвер, но на основании того, что я слышал от коллег: подписан ли у вас цифровой драйвер? Если нет, поищите информацию о загрузке неподписанных драйверов в 64-битных системах.

...