Ndis Miniport для Windows 98

Тема в разделе "WASM.NT.KERNEL", создана пользователем sergmann, 24 дек 2007.

  1. sergmann

    sergmann New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    3
    Добрый вечер!

    Пытаюсь написать виртуальный Ndis драйвер сетевой карты для Windows 98.
    Облазил весь интернет в поисках хоть какого-нибудь работающего примера Ndis Miniport, но ничего не смог найти. Может кто-нибудь знает где можно достать такой пример.

    Попытался реализовать что-либо работающее самостоятельно, используя имеющуюся в интернет информацию, но пока ничего не вышло. После инсталляции драйвера с использованием inf файла система его не грузит (error code: 10). Никакими способами не удаётся изменить эту ситуацию.

    Буду очень благодарен за любую информацию по данному вопросу!
     
  2. wasm_test

    wasm_test wasm test user

    Публикаций:
    0
    Регистрация:
    24 ноя 2006
    Сообщения:
    5.582
    Сорцы бы дал..
     
  3. sergmann

    sergmann New Member

    Публикаций:
    0
    Регистрация:
    7 июн 2007
    Сообщения:
    3
    Штука в том, что я пишу на 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):
    1. ;-------------------------------------------------------------------------------
    2. [version]
    3. Signature   = "$Chicago$"
    4. Class       = Net
    5. Provider    = %Msft%
    6. DriverVer   = 12/19/2007,0.0.0.0
    7.  
    8. [Manufacturer]
    9. %Msft% = Msft
    10.  
    11. [Msft]
    12. %NETVMINI.DeviceDesc% = NETVMINI.ndi, NETVMINI
    13.  
    14. [NETVMINI.ndi]
    15. AddReg = NETVMINI.Reg
    16.  
    17. ;-----------------------------------------------------------------------------
    18. ; Virtual miniport registration
    19. ;-----------------------------------------------------------------------------
    20. [NETVMINI.Reg]
    21. HKR,Ndi,DeviceID,,NETVMINI
    22.  
    23. ; NDIS info
    24. HKR,NDIS,LogDriverName,0,"NETVMINI"
    25. HKR,NDIS,MajorNdisVersion,1,03
    26. HKR,NDIS,MinorNdisVersion,1,0A
    27.  
    28. ; Interfaces
    29. HKR,Ndi\Interfaces,DefUpper,0,"ndis3"
    30. HKR,Ndi\Interfaces,DefLower,0,"ethernet"
    31. HKR,Ndi\Interfaces,UpperRange,0,"ndis3"
    32. HKR,Ndi\Interfaces,LowerRange,0,"ethernet"
    33.  
    34. ; Install
    35. HKR,Ndi\Install,ndis3,,"NETVMINI.Install.ndis3"
    36. HKR,Ndi\Remove,ndis3,,"VPACKET.Remove.ndis3"
    37.  
    38. [NETVMINI.Install.ndis3]
    39. AddReg=NETVMINI.Install.ndis3.AddReg
    40. DelReg=NETVMINI.Install.ndis3.DelReg
    41. CopyFiles=NETVMINI.CopyFiles.sys
    42.  
    43. [NETVMINI.Install.ndis3.AddReg]
    44. HKR,,DevLoader,0,"*ndis,*ntkern"
    45. HKR,,DeviceVxDs,0,"NETVMINI.sys"
    46.  
    47. [NETVMINI.Remove.ndis3]
    48. DelFiles=NETVMINI.CopyFiles.sys, NETVMINI.CopyFiles.inf
    49.  
    50. [NETVMINI.CopyFiles.sys]
    51. NETVMINI.SYS
    52.  
    53. [NETVMINI.CopyFiles.inf]
    54. NETVMINI.INF
    55.  
    56. [DestinationDirs]
    57. NETVMINI.CopyFiles.sys   = 11 ; LDID_SYS
    58. NETVMINI.CopyFiles.inf   = 17 ; LDID_INF
    59.  
    60. ;-----------------------------------------------------------------------------
    61. ; Localizable Strings
    62. ;-----------------------------------------------------------------------------
    63. [Strings]
    64. Msft                       = "Company"                      
    65. NETVMINI.DeviceDesc        = "Virtual Ethernet Adapter"
    66. DiskId1 = "Virtual Miniport Device Installation Disk #1"
    А как в Win 98 указать, что минипорт виртуальный?
    По аналогии с:
    Код (Text):
    1. Characteristics = 0x1 ; NCF_VIRTUAL
    в 2000. Возможно, проблема заключается в этом?