Доброго времени суток всем. Вопрос такой: есть драйвер (DLPortio, управление LPT-портом). Есть программа, устанавливающая его. Программа организована в виде обыкновенной инсталляшки с тучей кнопочек "Next" -> "Next" и т. д. Драйвер нужно прописывать в систему "одним щелчком мыши". Экспериментально раскопал, что помимо копирования файла драйвера и сопутствующей DLL-ки для его работы нужно создать следующие ключи реестра:
| Код | [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls] "C:\\WINDOWS\\system32\\DRIVERS\\DLPORTIO.sys"=dword:00000001 "C:\\WINDOWS\\system32\\DRIVERS\\Ctl3d32.dll"=dword:00000001 "C:\\WINDOWS\\system32\\DLPORTIO.dll"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DLPortIO] "DisplayName"="DriverLINX Port I/O Driver" "ErrorControl"=dword:00000001 "Group"="SST miniport drivers" "Start"=dword:00000002 "Tag"=dword:00000001 "Type"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\DLPortIO\Enum] "0"="Root\\LEGACY_DLPORTIO\\0000" "Count"=dword:00000001 "NextInstance"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_DLPORTIO] "NextInstance"=dword:00000001
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_DLPORTIO\0000] "Service"="DLPortIO" "Legacy"=dword:00000001 "ConfigFlags"=dword:00000000 "Class"="LegacyDriver" "ClassGUID"="{8ECC055D-047F-11D1-A537-0000F8753ED1}" "DeviceDesc"="DriverLINX Port I/O Driver"
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Enum\Root\LEGACY_DLPORTIO\0000\Control] "*NewlyCreated*"=dword:00000000 "ActiveService"="DLPortIO"
|
Вот только ветка CurrentControlSet, как оказалось, создаётся динамически, и кроме пользователя System прав на запись туда никто не имеет. Равно как и в ветки ControlSet00n. Как происходит (по науке) регистрация драйвера в системе, и можно-ли её выполнить, используя сценарий комстроки (как вариант, VBS)? |