Помогите победить драйвер
От: uka  
Дата: 05.05.04 12:29
Оценка:
Здравствуйте.

Есть программа на С++ (Application), есть драйвер, есть исходники.
Код не привожу — много. Если бы просто не работало то и бог с ним,
но работает через раз потому мож кто знает раскажет.

Application запускается без ошибок, если просто
переписать файлы *.sys в папку Drivers. То, что переписал с С++ на Delphi я
работает только один раз.

Потом функция QueryServiceStatus для драйвера возвращает SERVICE_STOPPED,
StartService — false, GetLastError — ERROR_BAD_DRIVER.

После этого Application тоже запускается с ошибкой — не может загрузить драйвер.

Если заново записать в реестр информацию, которая был с драйвером


Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcipflt]
"Type"=dword:00000001
"Start"=dword:00000002
"ErrorControl"=dword:00000001
"ImagePath"=hex(2):5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,52,00,6f,00,6f,00,\
  74,00,5c,00,53,00,79,00,73,00,74,00,65,00,6d,00,33,00,32,00,5c,00,64,00,72,\
  00,69,00,76,00,65,00,72,00,73,00,5c,00,74,00,63,00,69,00,70,00,66,00,6c,00,\
  74,00,2e,00,73,00,79,00,73,00,00,00
"DisplayName"="tcipflt"
"Group"="TDI"


то Application работает всегда.
Моя программа работает только одни раз и только сразу после записи в реестр.
Если до этого один раз запустить Application, моя программа уже не работает.

При запущенном Application моя программа запускается без ошибок — и там и там
проверяется если драйвер запущен просто его используем.

После запуска Application ветка, где была информация драйвера
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\tcipflt]
исчезает. После запуска моей программы тоже, но не всегда.

Если я просто что-то не понимаю, то что?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.