Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: [1]   Вниз
  Печать  
Автор Тема: Проблема с запуском драйвера через Kernel-Mode Driver Manager  (Прочитано 6941 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Android9
Интересующийся

ru
Offline Offline

« : 21-05-2010 19:41 » 

Здравствуйте, форумчане.
Я разбирала пример драйвера.
На всякий приведу код:
Код:
#define _X86_ 
#include <ntddk.h>
#define DEBUG
#ifdef DEBUG
  #define DPRINT DbgPrint
#else
  #define DPRINT
#endif

VOID DriverUnload(IN PDRIVER_OBJECT DriverObject)
{
DPRINT("Driver unloaded");
return;
}

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
                     IN PUNICODE_STRING RegistryPath)
{
DPRINT("Driver loaded");
  DriverObject->DriverUnload = DriverUnload;

    return STATUS_SUCCESS;
}
Компилировала в Visual Studio 2008, на выходе получила .sys файл.

Попыталась запустить этот .sys через Kernel-Mode Driver Manager.  Регистрация драйвера прошла успешно. При нажатии Run ошибка
"Запуск драйвера был заблокирован". Кем? Чем? Неизвестно. (ОС Windows 7 x64).
Взяла тот же .sys, чтобы запустить его в Windows XP SP2 (x86). Регистрация драйвера успешна. При нажатии Run неведомая ошибка "Не удается найти указанный файл".

В чем тут проблема? Возможно, этого кода недостаточно для запуска драйвера?
Записан
zubr
Гость
« Ответ #1 : 22-05-2010 06:12 » 

Было бы чудом если бы на x64 драйвер, скомпилированный под x86, запустился бы. Под 64-битные системы драйвер должен быть и скомпилирован соответственно, далее, как я сам недавно выяснил, чтобы в 7-ке x64 работал драйвер, он должен быть скомпилирован в DDK7(2600), более ранние версии не годятся.
Записан
Android9
Интересующийся

ru
Offline Offline

« Ответ #2 : 22-05-2010 10:09 » 

Даже если скомпилировать, используя библиотеки к WinXP и X86 возникает та же ошибка (запускую, конечно, в Windows XP).


Кто-нибудь с таким сталкивался?

Опции:
/OUT:"D:\Visual Studio 2008\Projects\Drivers\driver1\access_control_x86_XP\Driver1\Debug\Driver1.sys" /INCREMENTAL:NO /NOLOGO /LIBPATH:"C:\WINDDK\7600.16385.1\lib\wxp\i386" /DLL /MANIFEST:NO /DEBUG /PDB:"d:\Visual Studio 2008\Projects\Drivers\driver1\access_control_x86_XP\Driver1\Debug\Driver1.pdb" /SUBSYSTEM:NATIVE /DRIVER /ENTRY:"DriverEntry" /MACHINE:X86 /ERRORREPORT:PROMPT ntoskrnl.lib Hal.lib int64.lib  kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib

P.S. "Ignore all default libraries" я ставлю NO и соотв. галка стоит "Inherit from parent or project defaults".  Иначе много unrezolved externals.
Записан
Android9
Интересующийся

ru
Offline Offline

« Ответ #3 : 22-05-2010 15:24 » 

Хорошо, драйвер запустился. Пришлось таки установить VisualDDK.
Записан
Страниц: [1]   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines