Добрый вечер! Пытаюсь написать виртуальный Ndis драйвер сетевой карты для Windows 98. Облазил весь интернет в поисках хоть какого-нибудь работающего примера Ndis Miniport, но ничего не смог найти. Может кто-нибудь знает где можно достать такой пример. Попытался реализовать что-либо работающее самостоятельно, используя имеющуюся в интернет информацию, но пока ничего не вышло. После инсталляции драйвера с использованием inf файла система его не грузит (error code: 10). Никакими способами не удаётся изменить эту ситуацию. Буду очень благодарен за любую информацию по данному вопросу!
Штука в том, что я пишу на C, а этот сайт посвящён Assembler-у, поэтому получается, что я не в тему буду. Я уже и на других форумах (Си-шных) спрашивал, но пока безрезультатно, поэтому решил попытать счастья здесь. Кроме того, я никогда не программил под Windows 98, а т.к. не нашёл сэмпла, то просто взял пример Ndis Miniport из Windows 2000 DDK и собрал его из под WinMe среды, пока просто закомментировав все неразрешённые ссылки, далее поправил Inf-файл и вручную проинсталлировал Network device из под Windows 98. Инсталляция прошла успешно, но после перезагрузки дело, как я понимаю, не доходит даже до вызова DriverEntry (загрузчик NDIS.VXD не может загрузить драйвер для данного устройства (Code 10)) Похоже я не разобрался как правильно зарегистрировать виртуальный минипорт. Информации на тему программирования минипортов под 98-ую я не нашёл, есть только кое-какая информация по различиям между 2000 и 98. Вот мой inf-файл: Код (Text): ;------------------------------------------------------------------------------- [version] Signature = "$Chicago$" Class = Net Provider = %Msft% DriverVer = 12/19/2007,0.0.0.0 [Manufacturer] %Msft% = Msft [Msft] %NETVMINI.DeviceDesc% = NETVMINI.ndi, NETVMINI [NETVMINI.ndi] AddReg = NETVMINI.Reg ;----------------------------------------------------------------------------- ; Virtual miniport registration ;----------------------------------------------------------------------------- [NETVMINI.Reg] HKR,Ndi,DeviceID,,NETVMINI ; NDIS info HKR,NDIS,LogDriverName,0,"NETVMINI" HKR,NDIS,MajorNdisVersion,1,03 HKR,NDIS,MinorNdisVersion,1,0A ; Interfaces HKR,Ndi\Interfaces,DefUpper,0,"ndis3" HKR,Ndi\Interfaces,DefLower,0,"ethernet" HKR,Ndi\Interfaces,UpperRange,0,"ndis3" HKR,Ndi\Interfaces,LowerRange,0,"ethernet" ; Install HKR,Ndi\Install,ndis3,,"NETVMINI.Install.ndis3" HKR,Ndi\Remove,ndis3,,"VPACKET.Remove.ndis3" [NETVMINI.Install.ndis3] AddReg=NETVMINI.Install.ndis3.AddReg DelReg=NETVMINI.Install.ndis3.DelReg CopyFiles=NETVMINI.CopyFiles.sys [NETVMINI.Install.ndis3.AddReg] HKR,,DevLoader,0,"*ndis,*ntkern" HKR,,DeviceVxDs,0,"NETVMINI.sys" [NETVMINI.Remove.ndis3] DelFiles=NETVMINI.CopyFiles.sys, NETVMINI.CopyFiles.inf [NETVMINI.CopyFiles.sys] NETVMINI.SYS [NETVMINI.CopyFiles.inf] NETVMINI.INF [DestinationDirs] NETVMINI.CopyFiles.sys = 11 ; LDID_SYS NETVMINI.CopyFiles.inf = 17 ; LDID_INF ;----------------------------------------------------------------------------- ; Localizable Strings ;----------------------------------------------------------------------------- [Strings] Msft = "Company" NETVMINI.DeviceDesc = "Virtual Ethernet Adapter" DiskId1 = "Virtual Miniport Device Installation Disk #1" А как в Win 98 указать, что минипорт виртуальный? По аналогии с: Код (Text): Characteristics = 0x1 ; NCF_VIRTUAL в 2000. Возможно, проблема заключается в этом?