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}

Provider            = %Acme%

Compatible          = 1

MillenniumPreferred = .ME

DriverVer           = mm/dd/yyyy,x.y.v.z

 

[Manufacturer]

%Acme%          = AcmeDevices

 

[AcmeDevices]

%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) -----------------------------------

 

[RNDIS_AddReg_Common]

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"

Acme                        = "Acme Corporation"

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.

 

INF Version Section

 

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%

 

DriverVer = mm/dd/yyyy,x.y.v.z

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

 

INF Manufacturer Section

 

%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

 

INF Models Section

 

[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

 

INF Undecorated (Win98) DDInstall Section

 

DriverVer       = mm/dd/yyyy,x.y.v.z

Make this line the same as the one used in the INF Version Section above.

 

INF Win98 Specific AddReg Section

 

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.

 

INF WinMe DDInstall Section

 

DriverVer       = mm/dd/yyyy,x.y.v.z

Make this line the same as the one used in the INF Version Section above.

 

INF WinMe Specific AddReg Section

 

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.

 

INF ntx86 DDInstall Section

 

DriverVer       = mm/dd/yyyy,x.y.v.z

Make this line the same as the one used in the INF Version Section above.

 

INF Common AddReg Section

 

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.

 

INF Strings Section

 

The three string tags and strings should be changed appropriately for your company name and device names.