; ; AccelGraphics OemSetup.Inf file. Build: 3.5.1.01 ; ; This is for Nt-3.51 ; ;----------------------------------------------------------------------- ; OPTION TYPE ; ----------- ; This identifies the Option type we are dealing with. The different ; possible types are: ; ; COMPUTER, VIDEO, MOUSE, KEYBOARD, LAYOUT, SCSI, PRINTER, ... ;----------------------------------------------------------------------- [Identification] OptionType = VIDEO ; If it's for 3.51 ;----------------------------------------------------------------------- ; LANGUAGES SUPPORTED ; ------------------- ; ; The languages supported by the OEM 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 OEM Option key names. These keys are locale ; independent and used to represent the option in a locale independent ; manner. ; ;----------------------------------------------------------------------- ; ; Option list order: Option = Miniport driver, BitsPerPel, XResolution, ; YResolution, VRefresh, Interlaced ; ; If you don't want to create a VRefresh or Interlaced value under the service ; parameters then use the value "" ; ; AccelPro 3.5.1.01 [Options] "AccelGraphics AccelPro VideoBoard" = AccelPro "AccelGraphics AccelR8 VideoBoard" = AccelR8 [OptionsAccelR8] "1024x768x8x60" = Accel3D, 8, 1024, 768 , 60 , 0 [OptionsAccelPro] "1280x1024x15x60" = Accel3D, 15, 1280, 1024 , 60 , 0 ; ; This maps detected options into the options we support ; ; Format: DetectedOption = MappedOption ; [MapOfOptions] "VGA" = "VGA" "COMPAQ AVGA" = "VGA" "COMPAQ AGB" = "VGA" "8514 MONITOR UNKNOWN" = "VGA" "8514 VGA MONITOR" = "VGA" "8514 8503 MONO" = "VGA" "8514 8514 GAD" = "VGA" "GENOA VGA" = "VGA" "VIDEO7 VGA DRAM" = "VIDEO7 VGA VRAM 640x480x4" "VIDEO7 VGA VRAM" = "VIDEO7 VGA VRAM 640x480x4" "TRIDENT VGA" = "VGA" "TRIDENT VGA 9100" = "VGA" "PARADISE VGA" = "VGA" "PARADISE VGA PROM" = "VGA" "PARADISE VGA CHIP 1F" = "VGA" "ATI VGA" = "VGA" "ATI VGA WONDDER3" = "VGA" "TSENGLAB VGA ET3000" = "VGA" "TSENGLAB VGA ET4000" = "TSENGLAB VGA ET4000 640x480x4x60" "CIRRUS VGA" = "VGA" "CIRRUS VGA 610-620 REVC" = "VGA" "XGA" = "XGA 640x480x8" "DELL DGX" = "DELL DGX 640x480x8" "S3 VGA" = "S3 VGA 640x480x8" "PRODESIGNER II" = "TSENGLAB VGA ET4000 640x480x4x60" ; ; Order of the information: ; ; Port driver = Type, Group, ErrorControl, Tag, InstalledDisplay, VgaCompatible( 0/1 ), EventMessageFile, TypesSupported ; [MiniportDrivers] Accel3D = !SERVICE_KERNEL_DRIVER, Video, !SERVICE_ERROR_NORMAL, 11, {Accel3D}, 0 , "%SystemRoot%\System32\IoLogMsg.Dll;%SystemRoot%\System32\Drivers\Accel3D.Sys" , 7 ; ; Order of the information ; ; Display driver = OpenGL client driver ; [OpenGLDrivers] Accel3D = Accel3D ; ; Order of the information ; ; Display driver = Perfmon DLL ; ;; job: temp delete 5-Jan-95 until reinstated ->::[DispayPerfmon] ;; job: temp delete 5-Jan-95 until reinstated ->:: Accel3D = Accel3D ; ; Order of the information ; ; Display driver = GLINT Applet CPL ; [Accel3DMisc] Accel3D = Accel3D [AccelReleaseNoteArea] Accel3D = Accel3D ;----------------------------------------------------------------------- ; 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] "AccelGraphics AccelPro VideoBoard" = "AccelGraphics AccelPro 3D Video Adapter" "AccelGraphics AccelR8 VideoBoard" = "AccelGraphics AccelR8 3D Video Adapter" ;--------------------------------------------------------------------------- ; 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) 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 else map it to the default option ; which is VGA. ; set OptionList = ^(MapOfOptions, 0) ifcontains $($0) in $(OptionList) set MappedOption = #(MapOfOptions, $($0), 1) else set MappedOption = "VGA" endif set Status = STATUS_SUCCESSFUL Return $(Status) $(MappedOption) [ServicesEntry] CurrentEntry = "" ? $(!LIBHANDLE) GetDevicemapValue Video \Device\Video0 [AccelGeneralConstants] ExitCodeOk = 0 ExitCodeCancel = 1 ExitCodeFatal = 2 KeyNull = "" MAXIMUM_ALLOWED = 33554432 RegistryErrorIndex = NO_ERROR KeyProduct = "" KeyParameters = "" TRUE = 1 FALSE = 0 NoTitle = 0 ExitState = "Active" OldVersionExisted = $(FALSE) DriverPath = $(!STF_NTPATH)\Drivers SupportedBoards = {AccelR8, AccelPro} ; ; 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) ; Read General Constants read-syms AccelGeneralConstants 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 BoardType = #(Options, $(Option), 1) set Status = STATUS_SUCCESSFUL ; ; select appropriate resolution ; set OptionList = ^(Options$(BoardType), 0) set Option = *($(OptionList), 1) ; shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) WARNING $(OptionList)" "$(Option) ; ; set MiniportDriver = #(Options$(BoardType), $(Option), 1) set BitsPerPel = #(Options$(BoardType), $(Option), 2) set XResolution = #(Options$(BoardType), $(Option), 3) set YResolution = #(Options$(BoardType), $(Option), 4) set VRefresh = #(Options$(BoardType), $(Option), 5) set Interlaced = #(Options$(BoardType), $(Option), 6) set Type = $(#(MiniportDrivers, $(MiniportDriver), 1)) set Group = #(MiniportDrivers, $(MiniportDriver), 2) set ErrorControl = $(#(MiniportDrivers, $(MiniportDriver), 3)) set Tag = #(MiniportDrivers, $(MiniportDriver), 4) set InstalledDisplays = #(MiniportDrivers, $(MiniportDriver), 5) set VgaCompatible = #(MiniportDrivers, $(MiniportDriver), 6) set EventMessageFile = #(MiniportDrivers, $(MiniportDriver), 7) set TypesSupported = #(MiniportDrivers, $(MiniportDriver), 8) set OpenGLDriverList = ^(OpenGLDrivers, 0) set Accel3DMiscList = ^(Accel3DMisc, 0) set AccelReleaseNoteAreaList = ^(AccelReleaseNoteArea, 0) Set AccelGraphicsGroupNameRemoveBasic = "AccelGraphics" Set AccelGraphicsGroupNameRemoveFalcon = "AccelGraphics - Falcon" Set AccelGraphicsGroupNameRemoveFalconEFT = "AccelGraphics - Falcon EFT" Set AccelGraphicsGroupName = $(AccelGraphicsGroupNameRemoveBasic) Set MainGroup = "Main" Set AccelOemSetupIconVersion = 13 Set AccelOemSetupBuildVersionString = "Accel3DOemSetup.BuildVersion" Set AccelOemSetupIconVersionString = "Accel3DOemSetup.IconVersion" Set AccelInstallCursors = "No" Set AccelInstallIcons = "Yes" read-syms ServicesEntry detect ServicesEntry installtheoption = + ; ; Code to add files to copy list ; set Status = STATUS_FAILED ifstr(i) $(AddCopy) == "YES" set DoActualCopy = NO set FileToCheck = #(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\Drivers\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES goto addfiles endif ForListDo $(InstalledDisplays) set FileToCheck = #(Files-DisplayDLLs, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif set FileToCheck = #(Files-DisplayOpenGLDrivers, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)"\"$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif set FileToCheck = #(Files-Accel3DMisc, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSSYSPATH)\$(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif Set FileToCheck = #(Files-AccelReleaseNoteArea, $($), 2) LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(!STF_WINDOWSPATH)\Agi\(FileToCheck) ifstr(i) $(STATUS) == NO set DoActualCopy = YES endif EndForListDo addfiles = + ifstr(i) $(DoActualCopy) == NO shell "subroutn.inf" DriversExist $($0) $(String1) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Shell subroutn.inf 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 "Accel3D OemSetup.Inf: User cancelled video installation" goto finish_InstallOption else Debug-Output "Accel3D OemSetup.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 "Accel3D OemSetup.Inf: Shell subroutn.inf 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 "Accel3D OemSetup.Inf: User cancelled asking source." goto finish_InstallOption endif install Install-AddCopyOption ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS" Debug-Output "Accel3D OemSetup.Inf: Adding video 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 "Accel3D OemSetup.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 ; Before sticking anything in, let's see if we already have done some iconing things for ; this revision shell "" GetServicesEntryValue Accel3D\Parameters $(AccelOemSetupIconVersionString) Set GetR0 = $($R0) Set GetR1 = $($R1) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Couldn't execute GetServicesEntryValue in registry.inf" goto bypass_previousinstall endif ifstr(i) $(GetR0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: GetServicesEntryValue failed for "$(AccelOemSetupIconVersionString) goto bypass_previousinstall endif ifstr(i) $(GetR1) != $(AccelOemSetupIconVersion) Debug-Output "Accel3D OemSetup.Inf: GetServicesEntryValue version match for "$(AccelOemSetupIconVersionString) goto bypass_previousinstall endif Set AccelInstallCursors = "No" Set AccelInstallIcons = "No" bypass_previousinstall = + ; ; first make a new video entry, the entry is created automatically ; enabled ; set ServiceNode = $(MiniportDriver) set ServiceBinary = %SystemRoot%\System32\Drivers\#(Files-DisplayMiniportDrivers, $(MiniportDriver), 2) 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 ParametersValuesForAccelR8 = { + {InstalledDisplayDrivers, 0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, + {VgaCompatible, 0, $(!REG_VT_DWORD), $(VgaCompatible) }, + {DefaultSettings.BitsPerPel, 0, $(!REG_VT_DWORD), $(BitsPerPel) }, + {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD), $(XResolution) }, + {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD), $(YResolution) }, + {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh) }, + {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced) }, + {DoubleBuffer.NumberOfBuffers, 0, $(!REG_VT_DWORD), 2 }, + {DoubleBuffer.MultiColorSpace, 0, $(!REG_VT_DWORD), 1 }, + {ExportSingleBufferedModes, 0, $(!REG_VT_DWORD), 1 }, + ; {GlintClockSpeed, 0, $(!REG_VT_DWORD), 50 }, + {Accel3DDMA.SizeOfBuffer, 0, $(!REG_VT_DWORD), 65536 }, + {Accel3DDMA.NumberOfBuffers, 0, $(!REG_VT_DWORD), 4 }, + {Accel3DDMA.NumberOfSubBuffers, 0, $(!REG_VT_DWORD), 5 }, + {Accel3DDMA.LatencyTimer, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.Use2ClockMemoryCtl, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.LBMemoryCtl, 0, $(!REG_VT_DWORD), 32932 }, + ; {Accel3DTiming.LBMemoryCtlMask, 0, $(!REG_VT_DWORD), -1 }, + ; {Accel3DTiming.FBMemoryCtl, 0, $(!REG_VT_DWORD), 2048 }, + ; {Accel3DTiming.FBMemoryCtlMask, 0, $(!REG_VT_DWORD), 65535 }, + ; {Accel3DTiming.FBModeSel, 0, $(!REG_VT_DWORD), 2053 }, + ; {Accel3DTiming.FBModeSelMask, 0, $(!REG_VT_DWORD), 65535 }, + {3DInterfaceBuffer.SizeLongs, 0, $(!REG_VT_DWORD), 8192 }, + {3DExtensions.Disable, 0, $(!REG_VT_DWORD), 0 }, + {3DExtensions.SupportGDIsingle, 0, $(!REG_VT_DWORD), 0 }, + {3DExtensions.SupportGDIdouble, 0, $(!REG_VT_DWORD), 0 }, + ; {Timing.MClkN, 0, $(!REG_VT_DWORD), 178 }, + ; {Timing.MClkM, 0, $(!REG_VT_DWORD), 43 }, + ; {Timing.MClkP, 0, $(!REG_VT_DWORD), 178 }, + {UseSoftwareCursor, 0, $(!REG_VT_DWORD), 0 }, + {DefaultSettings.8bppRGB, 0, $(!REG_VT_DWORD), 1 } + {$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ), "3.5.1.01" } + } ; Important Note: There should be NO UseSoftwareCursor entry for Falcon. Even if it's ; specified as zero. ; Note that the previous values are overlayed by the following. There is NO NEED to comment ; out the previous lines...... set ParametersValuesForAccelPro = { + {InstalledDisplayDrivers, 0, $(!REG_VT_MULTI_SZ), $(InstalledDisplays) }, + {VgaCompatible, 0, $(!REG_VT_DWORD), $(VgaCompatible) }, + {DefaultSettings.BitsPerPel, 0, $(!REG_VT_DWORD), $(BitsPerPel) }, + {DefaultSettings.XResolution, 0, $(!REG_VT_DWORD), $(XResolution) }, + {DefaultSettings.YResolution, 0, $(!REG_VT_DWORD), $(YResolution) }, + {DefaultSettings.VRefresh, 0, $(!REG_VT_DWORD), $(VRefresh) }, + {DefaultSettings.Interlaced, 0, $(!REG_VT_DWORD), $(Interlaced) }, + {DefaultSettings.8bppRGB, 0, $(!REG_VT_DWORD), 1 }, + {DoubleBuffer.NumberOfBuffers, 0, $(!REG_VT_DWORD), 2 }, + {ExportSingleBufferedModes, 0, $(!REG_VT_DWORD), 1 }, + ; {GlintClockSpeed, 0, $(!REG_VT_DWORD), 0 }, + {Accel3DDMA.SizeOfBuffer, 0, $(!REG_VT_DWORD), 65536 }, + {Accel3DDMA.NumberOfBuffers, 0, $(!REG_VT_DWORD), 8 }, + {Accel3DDMA.NumberOfSubBuffers, 0, $(!REG_VT_DWORD), 5 }, + {Accel3DDMA.LatencyTimer, 0, $(!REG_VT_DWORD), 255 }, + ; {Accel3DTiming.Use2ClockMemoryCtl, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.LBMemoryCtl, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.LBMemoryCtlMask, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.FBMemoryCtl, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.FBMemoryCtlMask, 0, $(!REG_VT_DWORD), 0 }, + ; {Accel3DTiming.VTGSerialClk, 0, $(!REG_VT_DWORD), 0 }, + {3DInterfaceBuffer.SizeLongs, 0, $(!REG_VT_DWORD), 8192 }, + {3DExtensions.SupportGDIsingle, 0, $(!REG_VT_DWORD), 1 }, + {3DExtensions.SupportGDIdouble, 0, $(!REG_VT_DWORD), 1 }, + {OpenGL.DisableMipMaps, 0, $(!REG_VT_DWORD), 0 }, + {OpenGL.PerspectiveCorrection, 0, $(!REG_VT_DWORD), 1 }, + {DoubleBuffer.MultiColorSpace, 0, $(!REG_VT_DWORD), 0 }, + {Timing.MClkN, 0, $(!REG_VT_DWORD), 178 }, + {Timing.MClkM, 0, $(!REG_VT_DWORD), 43 }, + {Timing.MClkP, 0, $(!REG_VT_DWORD), 178 }, + {Accel3D.WarmReboot, 0, $(!REG_VT_DWORD), 1 }, + {$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ), "3.5.1.01" } + } set ParametersValues = $(ParametersValuesFor$(BoardType)) set DeviceValues = {} set EventLogValues = { + {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, + {TypesSupported, 0, $(!REG_VT_DWORD), $(TypesSupported) } + } ;Del:; ;Del:; Remove the old one completely, before installing the new one.... ;Del:do_removal =+ ;Del: shell "registry.inf" RemoveServicesEntry $(ServiceNode) ;Del: ifint $($ShellCode) != $(!SHELL_CODE_OK) ;Del: Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry" ;Del: goto finish_PreviousDeInstallOption ;Del: endif ;Del: ifstr(i) $($R0) != STATUS_SUCCESSFUL ;Del: Debug-Output "SCSI.INF: Failed to disable services entry" ;Del: goto finish_PreviousDeInstallOption ;Del: endif ;Del: set Status = STATUS_SUCCESSFUL ;Del:finish_PreviousDeInstallOption =+ ;Ganesh: To be clean, we have have to delete DeviceID_1,_2,..DeviceID_x ;devices left over from pre-release 3.1 drivers. Otherwise, we ;will have these (harmless) devices left cluttering the registry. set NullValues = { } ; ; Setup Device nodes for up to 4 adapters. ; Store the parameters in all Devices. ; ForListDo {0,1,2,3} ; Now blow away the previous registry values right now.... shell "" DeleteKeyTree $(!REG_H_LOCAL) "System\"$(!STF_CONTROLSET)"\Services\"$(ServiceNode)"\Device"$($) ; ; Now install the new one... ; shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(ParametersValues) + $(DeviceValues) + $(EventLogValues) + Device$($) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Couldn't execute MakeServicesEntry in registry.inf" goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: MakeServicesEntry failed for video" goto finish_InstallOption endif EndForListDo set KeyPath = { + {SOFTWARE, 0, $(MaskAllAccess)}, + {Microsoft, 0, $(MaskAllAccess)}, + {"Windows NT", 0, $(MaskAllAccess)}, + {CurrentVersion, 0, $(MaskAllAccess)}, + {OpenGLDrivers, 0, $(MaskAllAccess)} + } set KeyValue = { + {"AccelGraphics Accel3D Driver", 0, $(!REG_VT_SZ), Accel3DOglDrv } + } shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(KeyValue) Debug-Output "Accel3D OemSetup.Inf: Just did an OGL section" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Couldn't execute CreateKey in registry.inf" goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: CreateKey failed for OGLDrivers" goto finish_InstallOption endif Debug-Output "Accel3D OemSetup.Inf: Success installing an ogl entry" ; This is where the performance counters are loaded, if present. set KeyPath = { + {SYSTEM, 0, $(MaskAllAccess)}, + {$(!STF_CONTROLSET), 0, $(MaskAllAccess)}, + {Services, 0, $(MaskAllAccess)}, + {Accel3D, 0, $(MaskAllAccess)}, + {Performance, 0, $(MaskAllAccess)} + } set PerformanceValues = { + {Open, 0, $(!REG_VT_SZ), "OpenGlintPerformanceData" }, + {Close, 0, $(!REG_VT_SZ), "CloseGlintPerformanceData" }, + {Collect, 0, $(!REG_VT_SZ), "CollectGlintPerformanceData" }, + ;; job: temp delete 5-Jan-95 until reinstated ->:: {Library, 0, $(!REG_VT_SZ), "glntctrs.Dll" } + } shell "registry.inf" CreateKey $(!REG_H_LOCAL) $(KeyPath) $(PerformanceValues) Debug-Output "Accel3D OemSetup.Inf: Just did a perfmon section" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Couldn't execute CreateKey in registry.inf" goto finish_InstallOption endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: CreateKey failed for Accel3D perfmon" goto finish_InstallOption endif Debug-Output "Accel3D OemSetup.Inf: Success installing a perfmon entry" ; ; ; then disable the previous video entry ; ifstr(i) $(CurrentEntry) != $(MiniportDriver) ifstr(i) $(CurrentEntry) != VGA ifstr(i) $(CurrentEntry) != "" shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_DISABLED) ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Couldn't find DisableServicesEntry in registry.inf" goto errorconfig endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: DisableServices entry failed" endif endif endif endif set AgiUnZipParam = "/c $(!STF_WINDOWSSYSPATH)\..\Agi\AgiUnzip.Bat $(!STF_WINDOWSSYSPATH)\.." RunProgram Status "" "" $(!STF_WINDOWSSYSPATH)"\Cmd.Exe" "/c Call " $(!STF_WINDOWSSYSPATH)"\..\Agi\AgiUnzip.Bat" " " $(!STF_WINDOWSSYSPATH)"\.. > " $(!STF_WINDOWSSYSPATH)"\..\Agi\Accel3DInstall.Tmp 2>&1" set KeyPath = SYSTEM"\"$(!STF_CONTROLSET)"\"Services"\"Accel3D"\"Device0 set AccelPanelParam = "-s "$(BoardType)"-p "$(KeyPath) RunProgram Status "" "" $(!STF_WINDOWSSYSPATH)"\"AccelPanel.Exe "-s " $(BoardType) "-p " $(KeyPath) ; $(KeyPath) goto configdone errorconfig = + ifstr(i) $(CurrentEntry) != $(MiniportDriver) shell "registry.inf" ModifyServicesEntry $(MiniportDriver) $(!SERVICE_DISABLED) ifstr(i) $(CurrentEntry) != "" shell "registry.inf" ModifyServicesEntry $(CurrentEntry) $(!SERVICE_SYSTEM_START) endif endif goto finish_InstallOption configdone = + ;Jack Burness added for inserting the dynamic cursors...... ; ; We will run over the current user, and then the default path. And we will replace both the Wait ; and the Application Starting Cursors with our own. ifstr(i) $(AccelInstallCursors) != "Yes" goto DontInstallCursors endif Set RegCursorList = {"Wait", "AppStarting"} Set MatchingList = {"Agi.Ani", "AgiArrow.Ani" } ForListDo { $(!REG_H_CUSER) $(!REG_H_USERS) } Set RegKey = $($) set KeyPath = { + {"Control Panel",0, $(MaskAllAccess)}, + {"Cursors", 0, $(MaskAllAccess)}, + } ifstr(i) $(RegKey) == $(!REG_H_USERS) set KeyPath = { + {".Default", 0, $(MaskAllAccess)}, + {"Control Panel", 0, $(MaskAllAccess)}, + {"Cursors", 0, $(MaskAllAccess)}, + } endif ForListDo $(RegCursorList) set KeyValue = { + {$($), 0, $(!REG_VT_SZ), *($(MatchingList), $(#)) } + } shell "registry.inf" CreateKey $(!REG_H_CUSER) $(KeyPath) $(KeyValue) Debug-Output "Accel3D OemSetup.Inf: Just did a CreateKey for the cursor" ifint $($ShellCode) != $(!SHELL_CODE_OK) Debug-Output "Accel3D OemSetup.Inf: Couldn't execute CreateKey in registry.inf" goto endInstallCursorInnerLoop endif ifstr(i) $($R0) != STATUS_SUCCESSFUL Debug-Output "Accel3D OemSetup.Inf: CreateKey failed for Agi Cursors" goto endInstallCursorInnerLoop endif Debug-Output "Accel3D OemSetup.Inf: Success in installing cursor into registry" endInstallCursorInnerLoop = + EndForListDo EndForListDo DontInstallCursors =+ ; Jack Burness. Stuck in the creation of the icons here.... ifstr(i) $(AccelInstallIcons) != "Yes" goto DontInstallIcons endif install Install-AccelGraphicsIcons ; Now set the flag that we have done the installing. set ParametersValues2 = { + {$(AccelOemSetupIconVersionString), 0, $(!REG_VT_DWORD), $(AccelOemSetupIconVersion) } + {$(AccelOemSetupBuildVersionString),0, $(!REG_VT_SZ), "3.5.1.01" } + } shell "registry.inf" MakeServicesEntry $(ServiceNode) + $(ServicesValues) + $(ParametersValues2) + $(DeviceValues) + $(EventLogValues) + Parameters DontInstallIcons = + 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-DisplayMiniportDrivers + $(MiniportDriver) + $(SrcDir) + $(!STF_WINDOWSSYSPATH)\Drivers ForListDo $(InstalledDisplays) AddSectionKeyFileToCopyList Files-DisplayDLLs + $($) + $(SrcDir) + $(!STF_WINDOWSSYSPATH) AddSectionKeyFileToCopyList Files-DisplayOpenGLDrivers + $($) + $(SrcDir) + $(!STF_WINDOWSSYSPATH) ; Things that need to be done here. See about expanding the *.Ani files. ; Also check how they are loaded. Think that I may have a kludge in there ; that I don't quite understand. Also I moved it outside the For loop. ; AddSectionKeyFileToCopyList Files-Accel3DMisc + ; $($) + ; $(SrcDir) + ; $(!STF_WINDOWSSYSPATH) EndForListDo ; This is the code I moved outside the For loop. I think that the other one was in error. AddSectionFilesToCopyList Files-Accel3DMisc + $(SrcDir) + $(!STF_WINDOWSSYSPATH) AddSectionFilesToCopyList Files-AccelReleaseNoteArea + $(SrcDir) + $(!STF_WINDOWSPATH)\Agi 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 = "Display" String2 = "Please enter the full path to the OEM Display "+ "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 = "OEM DISK (VIDEO)" , TAGFILE = disk1 [Files-DisplayOpenGLDrivers] ; Important Note. The following formats MUST be adhered to, or else the buildkit.bat file ; will break for the zipping case. Basically everything between the first and second ='s ; MUST be kept formatted with spaces, etc. This is only for the first item, which breaks ; the 8.3 ancient naming convention. Accel3D = 1, A8OglDrv.Dll, SIZE=820000, RENAME=Accel3DOglDrv.Dll, BACKUP=Accel3DOglDrv.Dll.Bak [Files-Accel3DMisc] ; Important Note. The following formats MUST be adhered to, or else the buildkit.bat file ; will break for the zipping case. Basically everything between the first and second ='s ; MUST be kept formatted with spaces, etc. This is only for the first item, which breaks ; the 8.3 ancient naming convention. Accel3D = 1, AgiPanel.Exe, SIZE=260000, RENAME=AccelPanel.Exe Accel3D = 1, AgiPanel.Hlp, SIZE=30000, RENAME=AccelPanel.Hlp Accel3D = 1, Agi.Ani, SIZE=3000, RENAME=Agi.Ani Accel3D = 1, AgiArrow.Ani, SIZE=3000, RENAME=AgiArrow.Ani [Files-AccelReleaseNoteArea] ; Note that we don't install the release notes for some kits. And we also ; have special unzipping kits. Accel3D = 1, RelNotes.Wri, SIZE=15000, RENAME=RelNotes.Wri Accel3D = 1, Bbs.Txt, SIZE=5000, RENAME=Bbs.Txt Accel3D = 1, Faq.Wri, SIZE=15000, RENAME=Faq.Wri Accel3D = 1, AgiUnzip.Bat, SIZE=1000000, RENAME=AgiUnzip.Bat Accel3D = 1, AgiUnzip.Exe, SIZE=1400000, RENAME=AgiUnzip.Exe [Files-DisplayDLLs] ;Accel3D = 1,Accel3D.Dll , SIZE=150000, RENAME=Accel3Dmul.Dll, BACKUP=Accel3Dmul.Dll.Bak Accel3D = 1,Accel3D.Dll , SIZE=150000, RENAME=Accel3D.Dll, BACKUP=Accel3D.Dll.Bak [Files-DisplayMiniportDrivers] Accel3D = 1,Accel3D.Sys , SIZE=42000, RENAME=Accel3D.Sys, BACKUP=Accel3D.Sys.Bak [Install-AccelGraphicsIcons] ifstr(i) $(!STF_PRODUCT) != "WINNT" ; CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove1) "" ; RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove1) ; CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove2) "" ; RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove2) ; CreateCommonProgManGroup $(AccelGraphicsGroupNameRemove3) "" ; RemoveCommonProgManGroup $(AccelGraphicsGroupNameRemove3) CreateCommonProgManGroup $(AccelGraphicsGroupName) "" ShowCommonProgManGroup $(AccelGraphicsGroupName), 1 RemoveCommonProgManItem $(AccelGraphicsGroupName), "AccelPanel" CreateCommonProgManItem $(AccelGraphicsGroupName), "AccelPanel", AccelPanel.Exe "" 0 RemoveCommonProgManItem $(AccelGraphicsGroupName), "Release Notes" CreateCommonProgManItem $(AccelGraphicsGroupName), "Release Notes", $(!STF_WINDOWSPATH)\Agi\RelNotes.Wri "" 0 RemoveCommonProgManItem $(AccelGraphicsGroupName), "Frequently Asked Questions" CreateCommonProgManItem $(AccelGraphicsGroupName), "Frequently Asked Questions", $(!STF_WINDOWSPATH)\Agi\Faq.Wri "" 0 RemoveCommonProgManItem $(AccelGraphicsGroupName), "Bbs Info" CreateCommonProgManItem $(AccelGraphicsGroupName), "Bbs Info", $(!STF_WINDOWSPATH)\Agi\Bbs.Txt "" 0 ShowCommonProgManGroup $(AccelGraphicsGroupName), 6 endif exit [DeleteKeyTree] set Status = STATUS_FAILED read-syms AccelRegistryConstants set BaseHandle = $($0) set KeyHandle = $(BaseHandle) ForListDo $($1) set KeyInfo = $($) set KeyName = *($(KeyInfo), 1) OpenRegKey $(BaseHandle) "" $(KeyName) $(MaskAllAccess) KeyHandle ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) goto enddeletekeytree endif endif DeleteRegKey $(BaseHandle) $(KeyInfo) ifstr(i) $(BaseHandle) != $($0) CloseRegKey $(BaseHandle) ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) set Status = STATUS_ERROR_CREATEKEY Debug-Output "AccelOemSetup.Inf: Error in closing base handle" goto enddeletekeytree endif endif set BaseHandle = $(KeyHandle) EndForListDo set Status = STATUS_SUCCESSFUL enddeletekeytree = + ifstr(i) $(Status) != STATUS_SUCCESSFUL Debug-Output "AccelOemSetup.Inf: CreateKey Error:"$(Status) endif Return $(Status) [DeleteRegValueList] set Status = STATUS_FAILED read-syms AccelRegistryConstants set BaseHandle = $($0) set KeyHandle = $(BaseHandle) ForListDo $($1) set KeyInfo = $($) set KeyName = *($(KeyInfo), 1) OpenRegKey $(BaseHandle) "" $(KeyName) $(MaskAllAccess) KeyHandle ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) goto enddeletevaluetree endif endif DeleteRegValue $(BaseHandle) $(KeyInfo) ifstr(i) $(BaseHandle) != $($0) CloseRegKey $(BaseHandle) ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) set Status = STATUS_ERROR_CREATEKEY Debug-Output "AccelOemSetup.Inf: Error in closing base handle" goto enddeletevaluetree endif endif set BaseHandle = $(KeyHandle) EndForListDo set Status = STATUS_SUCCESSFUL enddeletevaluetree = + ifstr(i) $(Status) != STATUS_SUCCESSFUL Debug-Output "AccelOemSetup.Inf: CreateKey Error:"$(Status) endif Return $(Status) [AccelRegistryConstants] MaskAllAccess = 33554432 ; NoTitle = 0 ; RegLastError = $(!REG_ERROR_SUCCESS) [GetServicesEntryValue] set MyStatus = STATUS_FAILED set ReturnValue = "" Set GetSEVPath = $($0) Set GetSEVItem = $($1) read-syms AccelRegistryConstants Debug-Output "Accel OemSetup.Inf: Get Services node "$(GetSEVPath)" value: "$(GetSEVItem) set KeyName = "System\"$(!STF_CONTROLSET)"\Services\"$(GetSEVPath) OpenRegKey $(!REG_H_LOCAL) "" $(KeyName) $(!REG_KEY_READ) KeyHandle ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Accel OemSetup.Inf: Couldn't open services node for read access" goto finish_GetServicesEntryValue endif GetRegValue $(KeyHandle) $(GetSEVItem) ReturnValueList ifint $(RegLastError) != $(!REG_ERROR_SUCCESS) Debug-Output "Accel OemSetup.Inf: Couldn't read value "$(GetSEVItem) CloseRegKey $(KeyHandle) goto finish_GetServicesEntryValue endif CloseRegKey $(KeyHandle) set ReturnValue = *($(ReturnValueList), 4) set MyStatus = STATUS_SUCCESSFUL finish_GetServicesEntryValue = + Return $(MyStatus) $(ReturnValue) ; End of OemSetup.InfDownload 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.