Software devices such as MCI drivers and Video and Audio codecs are installed in SYSTEM.INI. The registry is used to store additional information about the device - for example, the description string. This area of the registry can be used by vendors to store any other information needed by the drivers. This area of the registry is removed when the device is removed from the Control Panel.
Following are two sample INF files. The first installs an MCI device, and the second installs a Video codec. Note that the [QA] and [VIDC.MSVC] sections define Mediatype=Software. This is necessary for proper installation of any software device. A reboot is always required for software-device installations.
;---------------------------------------------------------------; ;; Sample MCI driver INF file ; ;--------------------------------------------------------------- [Version] Signature="$CHICAGO$" Class=MEDIA [Manufacturer] %MfgName%=Generic [Generic] %*SAMPLE.DeviceDesc%=QA [QA] CopyFiles=QA.Copy Updateinis=QA.UpdateIni AddReg=QA.AddReg MediaType=Software ;; The 'MediaType' entry must be set to software. Otherwise ;; this INF section will be treated as an INF section for a PNP ;; device. [QA.Copy] mciqa.drv [QA.UpdateIni] system.ini,mci,,"other=mciqa.drv" ;; This adds the new line in [mci] section. [QA.AddReg] ;; This adds additional information required by the control ;; panel. The 'Description' and 'Driver' entries must be made. ;; Other entries private to the driver can also be added here HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\mci\other, Description,,%*SAMPLE.DeviceDesc% HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\mci\other, Driver,,mciqa.drv ;; The key name (vidc.MSVC) under the classname (icm) must match ;; the key name used in SYSTEM.INI. [DestinationDirs] DefaultDestDir = 11 ; LDID_SYS [SourceDisksNames] 1="OEM Multimedia Disk",, 0001 [SourceDisksFiles] mciqa.drv=1 [Strings] MfgName="OEM" *SAMPLE.DeviceDesc="MCIQA Driver" ;---------------------------------------------------------------; ;; Sample Video codec INF file ; ;--------------------------------------------------------------- [Version] Signature="$CHICAGO$" Class=MEDIA [Manufacturer] %MSVIDCMfgName%=Media.Software.Devs.VIDC [Media.Software.Devs.VIDC] %V_VIDC.MSVC%=VIDC.MSVC [VIDC.MSVC] CopyFiles=msvc.cf UpdateInis=msvc.inis AddReg=msvc.Reg MediaType=Software ;; The 'MediaType' entry must be set to software. Otherwise ;; this INF section will be treated as an INF section for a PNP ;; device. [msvc.inis] system.ini,drivers,"vidc.MSVC=" system.ini,drivers32,,"vidc.MSVC=msvidc32.dll" ;; The first line removes the old entry from [drivers] section. ;; The second line adds the new line in [drivers32] section. [msvc.Reg] ;; This adds additional information required by the control ;; panel. The 'Description' and 'Driver' entries must be made. ;; Other entries private to the driver can also be added here HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\icm\ vidc.MSVC,Description,,%V_VIDC.MSVC% HKLM,SYSTEM\CurrentControlSet\Control\MediaResources\icm\ vidc.MSVC,Driver,,msvidc32.dll ;; The key name (vidc.MSVC) under the classname (icm) must match ;; the key name used in SYSTEM.INI. [msvc.cf] msvidc32.dll [DestinationDirs] DefaultDestDir = 11 ; LDID_SYS [SourceDisksNames] 1="OEM Multimedia Disk",, 0001 [SourceDisksFiles] msvidc32.dll=1 [Strings] MSVIDCMfgName="Microsoft Video Codecs" V_VIDC.MSVC="Video 1"