Microsoft KB Archive/153966

{|
 * width="100%"|

Serial Mouse Sample Builds but Doesn't Install

 * }

Q153966

-

The information in this article applies to:


 * Microsoft Win32 Device Driver Kit (DDK) Windows 95

-

SUMMARY
The serial mouse sample VxD on the Win95 DDK CD in mouse\samples\sermou builds correctly using the MAKEFILE, but the resulting binary cannot be installed properly using the supplied INF. If you have tried this by moving the VXD and INF from the RETAIL folder onto a floppy disk and starting the Hardware Wizard, everything seems to install, but the driver never starts.

MORE INFORMATION
You can see the problem by debugging the Sermou_Initialize procedure. It is a series of checks and operations. Near the top, it loads the COMINFO struct from the registry. However, this step always fails because there is no such entry made by the INF file. The following INF repairs this problem, as well as a few typographical errors, and also shows how to claim the specific resources being used. Because this is a sample, you will need to edit it for your com port and delete the port itself from the Device Manager first. This is not necessary for the default VMOUSE serial behavior but is included as if this is to be adapted to a new non-serial hardware resource. Also, to make the ASM code always reverse X/Y without having to toggle from the debugger, comment out the first two instructions of the My_Manipulator procedure.

Sample Code
  ; start INF ; Setup file for sample VMOUSE minidriver ; Copyright 1993-1996 Microsoft Corporation ; modified for KB updated June 96 to repair sample on Win95 DDK April 96 and before

[Version] Signature="$CHICAGO$" Class=Mouse Provider=%MS% [DestinationDirs] DefaultDestDir = 11       ; LDID_SYS Sermou.Copy   = 11 [SourceDisksNames] 91=%SerMouDisk%,,1 [SourceDisksFiles] sermou.vxd=91 [Manufacturer] %MS%=MS ; Manufacturer Sections ;   [MS] %Sermou.Desc%=Sermou ; Install sections ;   [Sermou] DelReg=Prev.DelReg AddReg=VMOUSE.AddReg CopyFiles=Sermou.Copy UpdateInis=Sermou.Ini LogConfig=SampConfig [Prev.DelReg] HKR,,DevLoader HKR,,MouseDriver [VMOUSE.AddReg] HKR,,DevLoader,,*vmouse HKR,,MouseDriver,,sermou.vxd ;This manually set right here for your machine - to test sample - COM1 ;HKLM,"Enum\Root\Mouse\0000",COMINFO,1,F8,02,03,02 ;COM2 HKLM,"Enum\Root\Mouse\0000",COMINFO,1,F8,03,04,01 ;COM1 [Sermou.Copy] sermou.vxd [Sermou.Ini] system.ini,boot.description,,"mouse.drv=%Sermou.Desc%" system.ini,boot,,"mouse.drv=mouse.drv" system.ini,386Enh,,"mouse=*vmouse" ;This manually set right here for your machine - to test sample - COM1 ;Note that using the following will cause you to first remove the COM port installed there ; since it accesses the serial port directly. ;It shows how you would claims resources exclusively by means of the INF.  [SampConfig] ConfigPriority=HARDRECONFIG ;IOConfig=2f8-2ff(3ff::)     ;standard COM2 ;IRQConfig=S:3 IOConfig=3f8-3ff(3ff::)     ;standard COM1 IRQConfig=S:4 ;   ; User-visible Strings [Strings] SerMouDisk="Sample Win95 Mouse Driver Disk June 96" MS="Microsoft" Sermou.Desc="Win95 Sample Serial Mouse Minidriver June 96" ; end INF