Below is a template
for a USB Remote NDIS Device INF file.
Lines that require an IHV specific change are hyperlinks. Click on the line to jump to a description
of the requirement. For more
information refer to the Windows DDK Network Installation section.
You should name your
INF file appropriately to avoid collisions with existing INF files.
The layout of the
files on the media you use to distribute the INF and drivers should be a single
directory containing the following files:
xxxxxxxx.INF (your INF file with xxxxxxxx changed
appropriately)
usb8023.sys (the binary drivers for Windows 2000)
rndismp.sys
usb8023w.sys (the binary drivers for Windows 98 &
Windows 98 SE)
rndismpw.sys
usb8023m.sys (the binary drivers for Windows Me)
rndismpm.sys
; Start of Template
INF for a USB Remote NDIS Device
[Version]
Signature = "$CHICAGO$"
Class = Net
ClassGUID =
{4d36e972-e325-11ce-bfc1-08002be10318}
Compatible = 1
MillenniumPreferred
= .ME
DriverVer = mm/dd/yyyy,x.y.v.z
[Manufacturer]
%AcmeDevice% =
RNDIS, USB\VID_vvvv&PID_pppp
[ControlFlags]
ExcludeFromSelect=*
; Win98 specific
sections ----------------------------------------
[RNDIS]
DeviceID = usb8023
MaxInstance = 512
DriverVer
= mm/dd/yyyy,x.y.v.z
AddReg = RNDIS_AddReg_98,
RNDIS_AddReg_Common
[RNDIS_AddReg_98]
HKR, , DevLoader, 0, *ndis
HKR, , DeviceVxDs, 0, usb8023.sys
HKR, NDIS, LogDriverName, 0, "usb8023"
HKR, NDIS, MajorNdisVersion, 1, 5
HKR, NDIS, MinorNdisVersion, 1, 0
HKR, Ndi\Interfaces,
DefUpper, 0,
"ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces,
DefLower, 0,
"ethernet"
HKR, Ndi\Interfaces,
UpperRange, 0,
"ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces,
LowerRange, 0,
"ethernet"
HKR,
Ndi\Install, ndis3, 0, "RNDIS_Install_98"
HKR,
Ndi\Install, ndis4, 0, "RNDIS_Install_98"
HKR,
Ndi\Install, ndis5, 0, "RNDIS_Install_98"
HKR, Ndi,
DeviceId, 0,
"USB\VID_vvvv&PID_pppp"
[RNDIS_Install_98]
CopyFiles=RNDIS_CopyFiles_98
[RNDIS_CopyFiles_98]
usb8023.sys,
usb8023w.sys, , 0
rndismp.sys,
rndismpw.sys, , 0
; Me specific
sections ----------------------------------------
[RNDIS.ME]
DeviceID = usb8023
MaxInstance = 512
DriverVer
= mm/dd/yyyy,x.y.v.z
AddReg = RNDIS_AddReg_ME,
RNDIS_AddReg_Common
[RNDIS_AddReg_ME]
HKR, , DevLoader, 0, *ndis
HKR, , DeviceVxDs, 0, usb8023.sys
HKR, NDIS, LogDriverName, 0, "usb8023"
HKR, NDIS, MajorNdisVersion, 1, 5
HKR, NDIS, MinorNdisVersion, 1, 0
HKR, Ndi\Interfaces,
DefUpper, 0,
"ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces,
DefLower, 0,
"ethernet"
HKR, Ndi\Interfaces,
UpperRange, 0,
"ndis3,ndis4,ndis5"
HKR, Ndi\Interfaces,
LowerRange, 0, "ethernet"
HKR,
Ndi\Install, ndis3, 0, "RNDIS_Install_ME"
HKR,
Ndi\Install, ndis4, 0, "RNDIS_Install_ME"
HKR,
Ndi\Install, ndis5, 0, "RNDIS_Install_ME"
HKR, Ndi,
DeviceId, 0,
"USB\VID_vvvv&PID_pppp"
[RNDIS_Install_ME]
CopyFiles=RNDIS_CopyFiles_ME
[RNDIS_CopyFiles_ME]
usb8023.sys,
usb8023m.sys, , 0
rndismp.sys,
rndismpm.sys, , 0
; Win2000 specific
sections ----------------------------------------
[RNDIS.ntx86]
Characteristics =
0x84 ; NCF_PHYSICAL + NCF_HAS_UI
BusType = 15
DriverVer
= mm/dd/yyyy,x.y.v.z
AddReg = RNDIS_AddReg_ntx86,
RNDIS_AddReg_Common
CopyFiles = RNDIS_CopyFiles_ntx86
[RNDIS.ntx86.Services]
AddService =
USB_RNDIS, 2, RNDIS_ServiceInst, RNDIS_EventLog
[RNDIS_AddReg_ntx86]
HKR, Ndi, Service, 0,
"USB_RNDIS"
HKR,
Ndi\Interfaces, UpperRange, 0, "ndis5"
HKR, Ndi\Interfaces, LowerRange, 0, "ethernet"
[RNDIS_ServiceInst]
DisplayName = %ServiceDisplayName%
ServiceType = 1
StartType = 3
ErrorControl = 1
ServiceBinary = %12%\usb8023.sys
LoadOrderGroup = NDIS
AddReg = RNDIS_WMI_AddReg
[RNDIS_WMI_AddReg]
HKR, , MofImagePath,
0x00020000, "System32\drivers\rndismp.sys"
[RNDIS_EventLog]
AddReg =
RNDIS_EventLog_AddReg
[RNDIS_EventLog_AddReg]
HKR, ,
EventMessageFile, 0x00020000, "%%SystemRoot%%\System32\netevent.dll"
HKR, ,
TypesSupported, 0x00010001, 7
[RNDIS_CopyFiles_ntx86]
usb8023.sys,
usb8023.sys, , 0
rndismp.sys,
rndismp.sys, , 0
; Common (98 &
ntx86 Sections) -----------------------------------
HKR, NDI\params\NetworkAddress,
ParamDesc, 0, %NetworkAddress%
HKR,
NDI\params\NetworkAddress, type, 0,
"edit"
HKR,
NDI\params\NetworkAddress, LimitText, 0, "12"
HKR,
NDI\params\NetworkAddress, UpperCase, 0, "1"
HKR,
NDI\params\NetworkAddress, default, 0,
" "
HKR,
NDI\params\NetworkAddress, optional, 0,
"1"
[SourceDisksNames]
1=%SourceDisk%,,1
[SourceDisksFiles]
usb8023m.sys=1
rndismpm.sys=1
usb8023w.sys=1
rndismpw.sys=1
usb8023.sys=1
rndismp.sys=1
[DestinationDirs]
RNDIS_CopyFiles_98 = 10, system32/drivers
RNDIS_CopyFiles_ME = 10, system32/drivers
RNDIS_CopyFiles_ntx86
= 12
[Strings]
ServiceDisplayName = "Remote NDIS USB Network
Device Driver"
NetworkAddress = "Network Address"
AcmeDevice = "Acme USB Remote NDIS
Network Device"
SourceDisk = "Acme USB Network
Driver Install Disk"
; End of Template
INF for a USB Remote NDIS Device
The following are descriptions of the changes you need to make to the template INF for your RNDIS device.
Provider = %Acme%
Replace the word Acme with a short word that represents your company name. Note the resultant string token that replaces %Acme% must be present in the strings section at the bottom of the INF with a string that more fully represents the name of your company. This same string token should be used in the Manufacturer Section.
Example: Provider =
%IHV%
Replace mm/dd/yy with the date, and x.y.v.z with the version number contained in the resources of the driver binary.
Example: DriverVer = 10/30/2000,1.0.0.0
%Acme% = AcmeDevices
Replace the string “Acme” with a short word that represents your company name. Note the resultant string token that replaces %Acme% must be present in the strings section at the bottom of the INF with a string that more fully represents the name of your company. This same string token should be used in the Version section with the Provider Keyword.
Example: %IHV% = IHVDevices
[AcmeDevices]
Replace the string AcmeDevices with the string that as used in the Manufacturer Section above.
Example: [IHVDevices]
%AcmeDevice% = RNDIS, USB\VID_vvvv&PID_pppp
Replace the string AcmeDevice with a string that represents your device. Note that the resultant string token that replaces %AcmeDevice% must be present in the strings section at the bottom of the INF with a string that more fully represents the name of your device.
Replace the vvvv and pppp strings with the Vendor ID and
Product ID of your device respectively.
Example: %IHVNetDevice% = RNDIS, VID_05E9&PID_0040
DriverVer = mm/dd/yyyy,x.y.v.z
Make this line the same as the one used in the INF Version Section above.
HKR, Ndi, DeviceId, 0, "USB\VID_vvvv&PID_pppp"
Replace the vvvv and pppp strings with the Vendor ID and Product ID of your device respectively. This must be the same PnP string used in the Models Section above.
DriverVer = mm/dd/yyyy,x.y.v.z
Make this line the same as the one used in the INF Version Section above.
HKR, Ndi, DeviceId, 0,
"USB\VID_vvvv&PID_pppp"
Replace the vvvv and pppp strings with the Vendor ID and Product ID of your device respectively. This must be the same PnP string used in the Models Section above.
DriverVer = mm/dd/yyyy,x.y.v.z
Make this line the same as the one used in the INF Version Section above.
The one advanced parameter that is described here is required by all devices. You can add additional advanced parameters here by adding more NDIparams keys for your device. The complete documentation on adding advanced parameters here is in the DDK.
The three string tags and strings should be changed appropriately for your company name and device names.