;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=36768
Download 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.