Вниз
Скачать: CL | DM;

Остановка драйвера   Найти похожие ветки 

← →
samael6 ©   (2006-11-27 17:04) [0]

Здраствуйте,
Такая проблема: написал драйвер и программу управления им. Все работает, кроме одного - процедуры остановки драйвера.
Для управления драйвером использую SCM манагер.
Сам по себе драйвер работает и отлично контроллируется такими програмами как OSLoader.
Мой же остановщик проходит нормально, но драйвер не останавливается и не выгружается, а просто перестает отвечать на команды (Получаю сообщение: Драйвер не может сейчас принимать команды...).
Вот код остановщика:

function TForm1.StopDriver: Boolean;
var
   schService,
   schSCManager: DWORD;
   p: PChar;
   ss: _SERVICE_STATUS;
begin
   Result:=False;
   p := nil;
   schSCManager := OpenSCManager(nil, nil, SC_MANAGER_ALL_ACCESS);
   if schSCManager = 0 then RaiseLastWin32Error;
   try
       schService := OpenService(schSCManager, "Avallonis", SERVICE_ALL_ACCESS);
       if schService = 0 then RaiseLastWin32Error;
       try
           if not ControlService(schService, SERVICE_CONTROL_STOP, SS) then
               RaiseLastWin32Error;
       finally
           CloseServiceHandle(schService);
       end;
   finally
       CloseServiceHandle(schSCManager);
   end;
   Result:=True;
end;


Заранее всех благодарю.


← →
Игорь Шевченко ©   (2006-11-27 17:32) [1]

Вообще-то для выгрузки рекомендуется использовать NtUnloadDriver


← →
Samael6 ©   (2006-11-27 18:44) [2]

Игорь, я использовал методы, которые описываются в статьях по написанию драйверов.
SCM используется во всех из них, Вы не могли бы подсказать, где можно узнать о предлогаемом Вами?


← →
Samael6 ©   (2006-11-27 18:45) [3]

И еще одно, может это поможет.
У меня драйвер "В стиле NT", не WDM!
Как показал поиск ntUnloadDriver, он применяется для WDM.
Или это не важно?


← →
Eraser ©   (2006-11-27 19:06) [4]

на сколько мне известно, "драйвер в стиле NT" выгрузить без перезагрузки нельзя.. хотя возможно ошибаюсь.


← →
Samael6 ©   (2006-11-27 19:08) [5]


> Eraser

В том-то и дело, что можно! OSLoader, как я уже говорил, все это делает без проблем...



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.029 c
2-1166517903
Sanek_sd
2006-12-19 11:45
2007.04.22
пару вопросов по клиент сервер


2-1175173581
Ezorcist
2007-03-29 17:06
2007.04.22
Вопрос по безопасности при открытии порта.


1-1172747769
r9000
2007-03-01 14:16
2007.04.22
Разность между двумя датами?


2-1175055373
npu3pak
2007-03-28 08:16
2007.04.22
Как добавить новые строки в базу на accesse?


15-1175075405
IMHO
2007-03-28 13:50
2007.04.22
Уроки Юрия Зотова




   Наверх