;This line is for Windows 3.x [pointing.device] WINPOINT=1:WINPOINT.DRV, "EVERTON WinPoint", x:*vmd ;below is for Windows NT ;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ;----------------------------------------------------------------------- [Identification] OptionType = POINTER ;----------------------------------------------------------------------- ; LANGUAGES SUPPORTED ; ------------------- ; ; The languages supported by the INF, For every language supported ; we need to have a separate text section for every displayable text ; section. ; ;----------------------------------------------------------------------- [LanguagesSupported] ENG ;----------------------------------------------------------------------- ; OPTION LIST ; ----------- ; This section lists the Option key names. These keys are locale ; independent and used to represent the option in a locale independent ; manner. ; ;----------------------------------------------------------------------- [Options] ; OEMSERMOUSE = oemmouse , oemmoucs wptserial = WinPoint wptps2 = WPT8042 ; ; This maps detected options into the options we support ; ; Format: DetectedOption = MappedOption ; [MapOfOptions] "Everton WinPoint Serial driver 1.60s" = WinPoint "Everton WinPoint PS2 driver 1.60s" = WPT8042 "MICROSOFT PS2 MOUSE" = "MICROSOFT PS2 MOUSE" "MICROSOFT SERIAL MOUSE" = "MICROSOFT SERIAL MOUSE" "MICROSOFT INPORT MOUSE" = "MICROSOFT INPORT MOUSE" "MICROSOFT BUS MOUSE" = "MICROSOFT BUS MOUSE" "MICROSOFT BALLPOINT SERIAL MOUSE" = "MICROSOFT BALLPOINT SERIAL MOUSE" "MICROSOFT BALLPOINT PS2 MOUSE" = "MICROSOFT BALLPOINT PS2 MOUSE" "LOGITEC PS2 MOUSE" = "LOGITEC PS2 MOUSE" "LOGITEC SERIAL MOUSE" = "LOGITEC SERIAL MOUSE" NONE = NONE UNKNOWN = UNKNOWN ; ; Order of the information: ; ; Port driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported ; [PortDrivers] WinPoint = !SERVICE_KERNEL_DRIVER, "Pointer Port", !SERVICE_ERROR_IGNORE, 2, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\winpoint.sys" , 7 WPT8042 = !SERVICE_KERNEL_DRIVER, "Keyboard Port", !SERVICE_ERROR_NORMAL, 2, "%SystemRoot%\System32\IoLogMsg.dll;%SystemRoot%\System32\drivers\wpt8042.sys" , 7 [PS2-Drivers] i8042prt wpt8042 msi8042 ;----------------------------------------------------------------------- ; OPTION TEXT SECTION ; ------------------- ; These are text strings used to identify the option to the user. There ; are separate sections for each language supported. The format of the ; section name is "OptionsText" concatenated with the Language represented ; by the section. ; ;----------------------------------------------------------------------- [OptionsTextENG] ; OEMSERMOUSE = "OEM for Microsoft Serial Mouse" wptserial = "Everton WinPoint Serial driver 1.60s" wptps2 = "Everton WinPoint PS2 driver 1.60s" ;--------------------------------------------------------------------------- ; 1. Identify ; ; DESCRIPTION: To verify that this INF deals with the same type of options ; as we are choosing currently. ; ; INPUT: None ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Option Type (COMPUTER ...) ; $($R2): Diskette description ;--------------------------------------------------------------------------- [Identify] ; ; read-syms Identification set Status = STATUS_SUCCESSFUL set Identifier = $(OptionType) set Media = #("Source Media Descriptions", 1, 1) Return $(Status) $(Identifier) $(Media) ;------------------------------------------------------------------------ ; 2. ReturnOptions: ; ; DESCRIPTION: To return the option list supported by this INF and the ; localised text list representing the options. ; ; ; INPUT: $($0): Language used. ( ENG | FRN | ... ) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE ; STATUS_FAILED ; ; $($R1): Option List ; $($R2): Option Text List ;------------------------------------------------------------------------ [ReturnOptions] ; ; set Status = STATUS_FAILED set OptionList = {} set OptionTextList = {} ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) goto returnoptions else set Status = STATUS_NOLANGUAGE goto finish_ReturnOptions endif ; ; form a list of all the options and another of the text representing ; returnoptions = + set OptionList = ^(Options, 0) set OptionTextList = ^(OptionsText$($0), 1) set Status = STATUS_SUCCESSFUL finish_ReturnOptions = + Return $(Status) $(OptionList) $(OptionTextList) ;--------------------------------------------------------------------------- ; MapToSupportedOption ; ; DESCRIPTION: To map a hardware detected option to the NT Supported ; option which represents it. ; ; INPUT: $($0): Option ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL ; $($R1): Mapped Option ; ;--------------------------------------------------------------------------- [MapToSupportedOption] ; set Status = STATUS_FAILED set MappedOption = $($0) ; ; If the option is one we can support using one of our standard options ; then map it to the standard option. If not just pass it back as an ; unknown option ; set OptionList = ^(MapOfOptions, 0) ifcontains $($0) in $(OptionList) set MappedOption = #(MapOfOptions, $($0), 1) else set MappedOption = "UNKNOWN" endif set Status = STATUS_SUCCESSFUL Return $(Status) $(MappedOption) [ServicesEntry] CurrentPortEntry = "" ? $(!LIBHANDLE) GetDevicemapValue PointerPort \Device\PointerPort0 ; ; InstallOption: ; ; FUNCTION: To copy files representing Options ; To configure the installed option ; To update the registry for the installed option ; ; INPUT: $($0): Language to use ; $($1): OptionID to install ; $($2): SourceDirectory ; $($3): AddCopy (YES | NO) ; $($4): DoCopy (YES | NO) ; $($5): DoConfig (YES | NO) ; ; OUTPUT: $($R0): STATUS: STATUS_SUCCESSFUL | ; STATUS_NOLANGUAGE | ; STATUS_USERCANCEL | ; STATUS_FAILED ; [InstallOption] ; ; Set default values for ; set Status = STATUS_FAILED set DrivesToFree = {} ; ; extract parameters ; set Option = $($1) set SrcDir = $($2) set AddCopy = $($3) set DoCopy = $($4) set DoConfig = $($5) ; ; Check if the language requested is supported ; set LanguageList = ^(LanguagesSupported, 1) Ifcontains(i) $($0) in $(LanguageList) else set Status = STATUS_NOLANGUAGE goto finish_InstallOption endif read-syms Strings$($0) ; ; check to see if Option is supported. ; set OptionList = ^(Options, 0) ifcontains $(Option) in $(OptionList) else goto finish_InstallOption endif set OptionList = "" ; ; find out the current pointer port and class services entries, ; and the new port driver and class driver to install ; read-syms ServicesEntry detect ServicesEntry Debug-Output "POINTER.INF: Current Port Entry is: "$(CurrentPortEntry) Debug-Output "POINTER.INF: Current Class Entry is: "$(CurrentClassEntry) set PortDriver = #(Options, $(Option), 1) Debug-Output "POINTER.INF: New Port Entry is: "$(PortDriver) Debug-Output "POINTER.INF: New Class Entry is: "$(ClassDriver) ; ; Check if current option is NONE or UNKNOWN, then we don't need to copy ; any files. Set the AddCopy and DoCopy variables to NO ; ifstr(i) $(Option) == NONE set AddCopy = NO set DoCopy = NO else-ifstr(i) $(Option) == UNKNOWN set AddCopy = NO set DoCopy = NO endif installtheoption = + ; ; Code to add files to copy list ; ifstr(i) $(AddCopy) == "YES" set DoActualCopy = NO set FileToCheck = #(Files-MousePortDrivers, $(PortDriver), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\drivers\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif ifstr(i) $(DoActualCopy) == NO shell "subroutn.inf" DriversExist $($0) $(String1) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "POINTER.INF: shelling DriversExist failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_CURRENT else-ifstr(i) $($R0) == STATUS_NEW set DoActualCopy = YES else-ifstr(i) $($R0) == STATUS_USERCANCEL Debug-Output "POINTER.INF: User cancelled Pointer installation" goto finish_InstallOption else Debug-Output "POINTER.INF: Error reported in DriversExist routine in SUBROUTN.INF" goto finish_InstallOption endif endif ifstr(i) $(DoActualCopy) == YES shell "subroutn.inf" DoAskSourceEx $(SrcDir) $(String2) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "POINTER.INF: shelling DoAskSourceEx failed" goto finish_InstallOption endif ifstr(i) $($R0) == STATUS_SUCCESSFUL set SrcDir = $($R1) ifstr(i) $($R2) != "" set DrivesToFree = >($(DrivesToFree), $($R2)) endif else Debug-Output "POINTER.INF: User cancelled asking source." goto finish_InstallOption endif install Install-AddCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS" Debug-Output "POINTER.INF: Adding mouse files to copy list failed" goto finish_InstallOption endif else set DoCopy = NO endif endif ifstr(i) $(DoCopy) == "YES" read-syms ProgressCopy$($0) install Install-DoCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_FAILURE" Debug-Output "POINTER.INF: Copying files failed" goto finish_InstallOption else-ifstr(i) $(STF_INSTALL_OUTCOME) == "STF_USERQUIT" set Status = STATUS_USERCANCEL goto finish_InstallOption endif endif ifstr(i) $(DoConfig) == "YES" ; ; first run a privilege check on modifying the setup node ; shell "registry.inf" CheckSetupModify ifint $($ShellCode) != $(!SHELL_CODE_OK) goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL goto finish_InstallOption endif ; ; then make a new pointer port entry, the entry is created automatically ; enabled ; ifstr(i) $(PortDriver) != "" set ServiceNode = $(PortDriver) set ServiceBinary = %SystemRoot%\System32\drivers\#(Files-MousePortDrivers, $(PortDriver), 2) set Type = $(#(PortDrivers, $(PortDriver), 1)) set Group = #(PortDrivers, $(PortDriver), 2) set ErrorControl = $(#(PortDrivers, $(PortDriver), 3)) set Tag = #(PortDrivers, $(PortDriver), 4) set EventMessageFile = #(PortDrivers, $(PortDriver), 5) set TypesSupported = #(PortDrivers, $(PortDriver), 6) set ServicesValues = { + {Type, 0, $(!REG_VT_DWORD), $(Type) }, + {Start, 0, $(!REG_VT_DWORD), $(!SERVICE_SYSTEM_START) }, + {Group, 0, $(!REG_VT_SZ), $(Group) }, + {ErrorControl, 0, $(!REG_VT_DWORD), $(ErrorControl) }, + {Tag, 0, $(!REG_VT_DWORD), $(Tag) }, + {BinaryPathName, 0, $(!REG_VT_EXPAND_SZ), $(ServiceBinary) } + } set ParametersValues = { + {MouseDataQueueSize, 0, $(!REG_VT_DWORD), 100 }, + {NumberOfButtons, 0, $(!REG_VT_DWORD), 3 }, + {PointerDeviceBaseName, 0, $(!REG_VT_SZ), "PointerPort" }, + {SampleRate, 0, $(!REG_VT_DWORD), 40 } + } set DeviceValues = {} set EventLogValues = { + {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, + {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } + } shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(ParametersValues) + $(DeviceValues) + $(EventLogValues) + Parameters ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "POINTER.INF: Couldn't execute MakeServicesEntry in registry.inf" goto errorconfig endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "POINTER.INF: MakeServicesEntry failed for pointer" goto errorconfig endif endif ; ; ; then disable the previous pointer port entry ; ifstr(i) $(CurrentPortEntry) != $(PortDriver) ifstr(i) $(CurrentPortEntry) != "" ifstr(i) $(PortDriver) == wpt8042 shell "registry.inf" ModifyServicesEntry $(CurrentPortEntry) $(!SERVICE_DISABLED) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "POINTER.INF: Couldn't find DisableServicesEntry in registry.inf" goto errorconfig endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "POINTER.INF: DisableServices entry failed" goto errorconfig endif else set PS2List = ^(PS2-Drivers, 0) ifcontains(i) $(CurrentPortEntry) not-in $(PS2List) shell "registry.inf" ModifyServicesEntry $(CurrentPortEntry) $(!SERVICE_DISABLED) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "POINTER.INF: Couldn't find DisableServicesEntry in registry.inf" goto errorconfig endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "POINTER.INF: DisableServices entry failed" goto errorconfig endif endif endif endif endif goto configdone errorconfig = + ifstr(i) $(CurrentPortEntry) != $(PortDriver) ifstr(i) $(PortDriver) != "" shell "registry.inf" ModifyServicesEntry $(PortDriver) $(!SERVICE_DISABLED) endif ifstr(i) $(CurrentPortEntry) != "" shell "registry.inf" ModifyServicesEntry $(CurrentPortEntry) $(!SERVICE_SYSTEM_START) endif endif goto finish_InstallOption configdone = + endif set Status = STATUS_SUCCESSFUL finish_InstallOption = + ForListDo $(DrivesToFree) LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE" EndForListDo Return $(Status) [Install-AddCopyOption] set STF_VITAL = "" ; ; Add the files to the copy list ; AddSectionKeyFileToCopyList Files-MousePortDrivers + $(PortDriver) + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\drivers exit [Install-DoCopyOption] ; ; Copy files in the copy list ; CopyFilesInCopyList exit ;************************************************************************** ; PROGRESS GUAGE VARIABLES ;************************************************************************** [ProgressCopyENG] ProCaption = "Windows NT Setup" ProCancel = "Cancel" ProCancelMsg = "Windows NT is not correcly installed. Are you sure you want "+ "to cancel copying files?" ProCancelCap = "Setup Message" ProText1 = "Copying:" ProText2 = "To:" [StringsENG] String1 = "Mouse" String2 = "Please enter the full path to the Everton WinPoint"+ "driver files. Then choose Continue." ;----------------------------------------------------------------------- ; SOURCE MEDIA DESCRIPTIONS ; ------------------------- ; The OEM should list all the diskette labels here. The source media ; description is used during copy to prompt the user for a diskette ; if the source is diskettes. ; ; Use 1 = "Diskette 1 Label" , TAGFILE = disk1 ; 2 = "Diskette 2 Label" , TAGFILE = disk2 ; ... ;----------------------------------------------------------------------- ;-------------------------------------------------------------------- ; THE SECTIONS BELOW SHOULD BE AUTOMATICALLY GENERATED BY THE EXCEL ; SPREAD SHEETS ;-------------------------------------------------------------------- [Source Media Descriptions] 1 = "EVERTON WinPoint Driver Disk" , TAGFILE = disk1 [Files-MousePortDrivers] WinPoint = 1,winpoint.sys , SIZE=19232 WPT8042 = 1,wpt8042.sys , SIZE=36768Download Driver Pack
After your driver has been downloaded, follow these simple steps to install it.
Expand the archive file (if the download file is in zip or rar format).
If the expanded file has an .exe extension, double click it and follow the installation instructions.
Otherwise, open Device Manager by right-clicking the Start menu and selecting Device Manager.
Find the device and model you want to update in the device list.
Double-click on it to open the Properties dialog box.
From the Properties dialog box, select the Driver tab.
Click the Update Driver button, then follow the instructions.
Very important: You must reboot your system to ensure that any driver updates have taken effect.
For more help, visit our Driver Support section for step-by-step videos on how to install drivers for every file type.