Существует пример дравйера протокола, который лежит:
6000\src\network\ndis\ndisprot\5x
инсталируется он с помощью inf файла, причем с массой телодвижений с участием пользователя,
вопрос состоит в том, что-бы делать тоже самое без участия пользователя.
Приведу текст этого инф-файла:
;-------------------------------------------------------------------------
; NDISPROT.INF -- Sample NDIS Protocol Driver
;
; Copyright (c) 2003, Microsoft Corporation
;-------------------------------------------------------------------------
[version]
Signature = "$Windows NT$"
Class = NetTrans
ClassGUID = {4d36e975-e325-11ce-bfc1-08002be10318}
Provider = %Msft%
DriverVer =10/01/2002,6.0.5019.0
;-------------------------------------------------------------------------
; Ndi installation support
;-------------------------------------------------------------------------
[Inst_Ndi]
HKR,Ndi,Service,,"Ndisprot"
HKR,Ndi,HelpText,,%NDISPROT_HelpText%
HKR,Ndi\Interfaces, UpperRange,, noupper
HKR,"Ndi\Interfaces","LowerRange",,"ndis5,ndis4,ndis5_prot"
;-------------------------------------------------------------------------
; Service installation support
;-------------------------------------------------------------------------
[Install.Services]
AddService=Ndisprot,,NDISPROT_Service_Inst
;-------------------------------------------------------------------------
; Files to Copy/Delete — Referenced by Install and Remove sections above
;-------------------------------------------------------------------------
[CpyFiles_Sys]
Ndisprot.sys,,,2
[Strings]
Msft = "Microsoft"
DiskDescription = "Microsoft Ndisprot Sample Protocol Driver Disk"
NDISPROT_Desc = "Sample NDIS Protocol Driver"
NDISPROT_HelpText = "A driver to support user-mode I/O on NDIS devices"
По некоторым секциям ясно — как это делать, но не таки есть части которые не ясны совершенно. Конечно можно взять и отслежить в какие ветки реестра пишуться данные при установке, но по мне так — это не надежно с точки зрения переносимости.
Существуют коммерческие файерволы использующие intermediate драйвера,
и они ставться автоматически без перезагрузки и участия пользователя.
Подскажие в каую сторону копать, как это они делают?
Здравствуйте, regiomontanus, Вы писали:
R>Подскажие в каую сторону копать, как это они делают?
Попробуйте почитать в DDK.
Windows DDK -> Device Installation -> Reference -> INF File Sections and Directives
Есть кривой интерфейс — INetCfg, с помощью него можно проделать все действия как и в ручную через свойства сетевого соединения. Описание есть в DDK.
Почему он кривой? Например потому, что там используется глобальный мьютекс, что приводит к тому, что не возможно установить драйвер если пользователь просматривает свойства соединения. Мелочь — а не приятная .