Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Вниз

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

 
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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.04.22;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.04 c
2-1175164361
YadlU
2007-03-29 14:32
2007.04.22
Дата время


9-1145552442
JF
2006-04-20 21:00
2007.04.22
Материал в OGL


2-1175197234
GRANWOLF
2007-03-29 23:40
2007.04.22
библиотеки


15-1174674540
webmus
2007-03-23 21:29
2007.04.22
Как бы так Web-radio relay сделать?


2-1175237687
АндрейК
2007-03-30 10:54
2007.04.22
Выбор строки в TreeView





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский