|
|
| Посл.отвђт | Сообщенiе |
|
|
Дата: Апр 20, 2004 08:52:26 Добрый день. Уважаемые гуру , подскажите как можно остановить или выгрузить программно драйвер сетевой платы или любую службу режима ядра. Заранее спасибо. |
|
|
Дата: Апр 20, 2004 09:24:50 · Поправил: q_q tricker net stop <служба>? |
|
|
Дата: Апр 20, 2004 11:25:44 http://www.wasm.ru/article.php?article=drvw2k02 StopDriver proc uses esi ebx pszDriverName:LPSTR
local sest:SERVICE_STATUS
xor ebx, ebx ; assume error
mov edi, offset g_szFail
invoke OpenSCManager, NULL, NULL, SC_MANAGER_CONNECT
.if eax != NULL
mov esi, eax
; Unregister driver - remove registry directory
invoke OpenService, esi, pszDriverName, SERVICE_STOP
invoke LastError
.if eax != NULL
push eax
mov ecx, eax
invoke ControlService, ecx, SERVICE_CONTROL_STOP, addr sest
.if eax != 0
inc ebx ; success
mov edi, offset g_szSuccess
.endif
call CloseServiceHandle
.endif
invoke CloseServiceHandle, esi
.else
invoke MessageBox, g_hDlg, addr g_szOpenSCManagerError, addr g_szCriticalError, \
MB_OK + MB_ICONSTOP + MB_TASKMODAL
.endif
return ebx
StopDriver endp |
|
|
Дата: Апр 21, 2004 08:22:43 Спасибо всем за ответ , но ни команда net stop <drvname> , ни приведенный код не останавливают драйвер сетевой платы , а дают ошибку № 1052. Я уточню вопрос - мне хотелось бы найти программный способ остановки подключения по локальной сети , как если бы делать это "ручками" - Пуск->Настройка->Панель управления->Сеть и удаленный доступ ->Подключение по локальной сети->Отключить |
|
|
Дата: Апр 21, 2004 12:52:03 · Поправил: Four-F Если такой код ошибки, то это значит, что у драйвера нет функции выгрузки или указатель на нее в объекте драйвера затерт нулями. Это самый простой способ предотвратить выгрузку. Вот смотри пример для Mouclass. Даже если удастся получить хендл к его девайсу PointerClass0, то выгрузить драйвер нельзя, т.к. DriverUnload = NULL. :driver Mouclass Start Size DrvSect pDrvExt DrvInit DrvStaIo DrvUnld Name ED348000 000054E0 8181FE48 8181FD78 ED34B4E4 ED348C7C 00000000 Mouclass AddDevice : ED34A142 DeviceObject* : 8187AAB0 Flags : 00000012 DRVO_LEGACY_DRIVER HardwareDatabase : \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM FastIoDispatch* : 00000000 IRP_MJ_CREATE at 8:ED34858C IRP_MJ_CLOSE at 8:ED348808 . . . IRP_MJ_PNP at 8:ED349026 |
|
|
Дата: Апр 21, 2004 13:33:52 Как тогда сама Windows отключает соединение по локальной сети ? В софтайсе после этого написано unload32 <имя драйвера> |
|
|
Дата: Апр 21, 2004 13:49:17 Кстати Софтайс сообщает : :driver e100b Start Size DrvSect pDrvExt DrvInit DrvStaIo DrvUnld Name BFD18000 00014E00 817BDF28 817BDEB8 BFD1A9D6 00000000 BFEDB235 E100B AddDevice : BFECB58A DeviceObject* : 817BD610 Flags : 00000012 DRVO_LEGACY_DRIVER HardwareDatabase : \REGISTRY\MACHINE\HARDWARE\DESCRIPTION\SYSTEM FastIoDispatch* : 00000000 IRP_MJ_CREATE at 8:BFEC92A0 IRP_MJ_CLOSE at 8:BFEC9916 . . . IRP_MJ_PNP at 8:BFECCB2E |
|
|
Дата: Апр 21, 2004 14:19:09 Поставь бряк на DriverUnload и посмотри доходит ли твой программный вызов до неё. Если доходит, тогда там и разберешься как он обрабатывается. |
|
Powered by miniBB 1.6 © 2001-2002
Время загрузки страницы (сек.): 0.085 |