OEMSETUP.INF Driver File Contents (Asus_P6300.zip)

;**************************************************************
;* File:        oemsetup.inf
;*              (c) 1993-1997 Softex, Inc.  All Rights Reserved
;*              This file contains licensed material from Softex.
;*              Unauthorized use of code from this file may be a
;*              violation of the licensing agreement.
;**************************************************************/
;-----------------------------------------------------------------------
; OPTION TYPE
; -----------
; This identifies the Option type we are dealing with.  The different
; possible types are:
;
; COMPUTER, VIDEO, POINTER, KEYBOARD, LAYOUT, SCSI, TAPE, PRINTER, ...
;-----------------------------------------------------------------------

[Identification]
    OptionType = SCSI

;-----------------------------------------------------------------------
; 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]
    "PcDisk" = PcDisk

;-----------------------------------------------------------------------
; 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]
    "PcDisk" = "PCMCIA IDE driver"


;-----------------------------------------------------------------------------------------
; SCSI MINIPORT DRIVERS:
;
; Order of the information:
;
; Class driver = Type, Group, ErrorControl, Tag, EventMessageFile, TypesSupported
;
;-----------------------------------------------------------------------------------------

[MiniportDrivers]
    PcDisk  = !SERVICE_KERNEL_DRIVER, "SCSI Miniport", !SERVICE_ERROR_NORMAL,  17, %SystemRoot%\System32\IoLogMsg.dll , 7

;---------------------------------------------------------------------------
; 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)


;
; 3. 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
        Debug-Output "SCSI.INF: SCSI option is not supported."
        goto finish_InstallOption
    endif
    set OptionList = ""

    ;
    ; Option has been defined already
    ;

    set MiniportDriver   =   #(Options,         $(Option),         1)
    set Type             = $(#(MiniportDrivers, $(MiniportDriver), 1))
    set Group            =   #(MiniportDrivers, $(MiniportDriver), 2)
    set ErrorControl     = $(#(MiniportDrivers, $(MiniportDriver), 3))
    set Tag              =   #(MiniportDrivers, $(MiniportDriver), 4)
    set EventMessageFile =   #(MiniportDrivers, $(MiniportDriver), 5)
    set TypesSupported   =   #(MiniportDrivers, $(MiniportDriver), 6)

    set Start            =   $(!SERVICE_BOOT_START)

installtheoption = +

    ;
    ; Code to add files to copy list
    ;

    ifstr(i) $(AddCopy) == "YES"
        set DoActualCopy = NO
        set FileToCheck = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 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 "SCSI.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 "SCSI.INF: User cancelled SCSI installation"
                goto finish_InstallOption
            else
                Debug-Output "SCSI.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 "SCSI.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 "SCSI.INF: User cancelled asking source."
                goto finish_InstallOption
            endif

            install Install-AddCopyOption
            ifstr(i) $(STF_INSTALL_OUTCOME) != "STF_SUCCESS"
                Debug-Output "Adding SCSI 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 "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

        ;
        ; prompt user for iobaseaddress and irq
        ;
        set IRQList = { Auto, 2, 3, 4, 5, 7, 9, 11 }
        set IOBaseAddrHexList = { Auto, 0x100, 0x150, 0x400, 0x450, 0x500, +
                                  0x550, 0x600, 0x650, 0x700, 0x750, +
                                  0x800, 0x850, 0x900, 0x950, 0x1000 +
                                }
        set IRQValue = 0
        set IOBaseAddress = 0
        read-syms FileDependentDlg$(!STF_LANGUAGE)
        ui start "InputDlg"
        ifstr(i) $(DLGEVENT) == "CONTINUE"
                    set IRQValue = $(Combo1Out)
                    set IOBaseAddress = $(Combo2Out)
                    ifstr(i) $(IOBaseAddress) == 0
                        Set DriverParameter = "IoBaseAddress = 0; "
                    else-ifstr(i) $(IOBaseAddress) == 0x100
                        Set DriverParameter = "IoBaseAddress = 0x100; "
                    else-ifstr(i) $(IOBaseAddress) == 0x150
                        Set DriverParameter = "IoBaseAddress = 0x150; "
                    else-ifstr(i) $(IOBaseAddress) == 0x400
                        Set DriverParameter = "IoBaseAddress = 0x400; "
                    else-ifstr(i) $(IOBaseAddress) == 0x450
                        Set DriverParameter = "IoBaseAddress = 0x450; "
                    else-ifstr(i) $(IOBaseAddress) == 0x500
                        Set DriverParameter = "IoBaseAddress = 0x500; "
                    else-ifstr(i) $(IOBaseAddress) == 0x550
                        Set DriverParameter = "IoBaseAddress = 0x550; "
                    else-ifstr(i) $(IOBaseAddress) == 0x600
                        Set DriverParameter = "IoBaseAddress = 0x600; "
                    else-ifstr(i) $(IOBaseAddress) == 0x650
                        Set DriverParameter = "IoBaseAddress = 0x650; "
                    else-ifstr(i) $(IOBaseAddress) == 0x700
                        Set DriverParameter = "IoBaseAddress = 0x700; "
                    else-ifstr(i) $(IOBaseAddress) == 0x750
                        Set DriverParameter = "IoBaseAddress = 0x750; "
                    else-ifstr(i) $(IOBaseAddress) == 0x800
                        Set DriverParameter = "IoBaseAddress = 0x800; "
                    else-ifstr(i) $(IOBaseAddress) == 0x850
                        Set DriverParameter = "IoBaseAddress = 0x850; "
                    else-ifstr(i) $(IOBaseAddress) == 0x900
                        Set DriverParameter = "IoBaseAddress = 0x900; "
                    else-ifstr(i) $(IOBaseAddress) == 0x950
                        Set DriverParameter = "IoBaseAddress = 0x950; "
                    else-ifstr(i) $(IOBaseAddress) == 0x1000
                        Set DriverParameter = "IoBaseAddress = 0x1000; "
                    else
                        Set DriverParameter = "IoBaseAddress = 0; "
                    endif

                    ifstr(i) $(IRQValue) == 0
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 0"
                    else-ifstr(i) $(IRQValue) == 2
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 2"
                    else-ifstr(i) $(IRQValue) == 3
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 3"
                    else-ifstr(i) $(IRQValue) == 4
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 4"
                    else-ifstr(i) $(IRQValue) == 5
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 5"
                    else-ifstr(i) $(IRQValue) == 7
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 7"
                    else-ifstr(i) $(IRQValue) == 9
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 9"
                    else-ifstr(i) $(IRQValue) == 11
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 11"
                    else
                        Set DriverParameter = $(DriverParameter)"InterruptNumber = 0"
                    endif
                    ui pop 1
        else-ifstr(i) $(DLGEVENT) == "BACK"
                    set CommonStatus = STATUS_USERCANCEL
                    Debug-Output "Action: exit. Bye."
                    ui pop 1
                    goto finish_InstallOption
        else
                    ui pop 1
                    Debug-Output "Action: unknown. Bye."
                    goto finish_InstallOption
        endif


        ;
        ; then make a new SCSI entry, the entry is created automatically
        ; enabled
        ;

        set ServiceNode   = $(MiniportDriver)
        set ServiceBinary = System32\drivers\#(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)

        set ServicesValues   = { +
                {Type,           0, $(!REG_VT_DWORD),     $(Type)                  }, +
                {Start,          0, $(!REG_VT_DWORD),     $(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 = {                                                      +
                {Dummy,          0, $(!REG_VT_DWORD),     $(Type)                  }  +
              }
        set DeviceValues     = {                                             +
                {DriverParameter,  0, $(!REG_VT_SZ), $(DriverParameter) }    +
              }
        set EventLogValues   = { +
                {EventMessageFile, 0, $(!REG_VT_EXPAND_SZ), $(EventMessageFile) }, +
                {TypesSupported,   0, $(!REG_VT_DWORD),     $(TypesSupported)   }  +
                }

        shell ""  MakeServicesEntry $(ServiceNode)      +
                                    $(ServicesValues)   +
                                    $(ParametersValues) +
                                    $(DeviceValues)     +
                                    $(EventLogValues)   +
                                    Parameters

        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            Debug-Output "Couldn't execute MakeServicesEntry in registry.inf"
            goto finish_InstallOption
        endif

        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            Debug-Output "MakeServicesEntry failed for SCSI"
            goto finish_InstallOption
        endif

    endif

    set Status = STATUS_SUCCESSFUL
finish_InstallOption = +
    ForListDo $(DrivesToFree)
        LibraryProcedure STATUS,$(!LIBHANDLE), DeleteNetConnection $($) "TRUE"
    EndForListDo

    Return $(Status)


[Install-AddCopyOption]

    ;
    ; Add the files to the copy list
    ;
    AddSectionKeyFileToCopyList   Files-ScsiMiniportDrivers         +
                                  $(MiniportDriver)                 +
                                  $(SrcDir)                      +
                                  $(!STF_WINDOWSSYSPATH)\drivers

    exit


[Install-DoCopyOption]

    ;
    ; Copy files in the copy list
    ;
    CopyFilesInCopyList
    exit

;-------------------------------------------------------------------------
; 4. DeInstallOption:
;
; FUNCTION:  To remove files representing Option
;            To remove the registry entry corresponding to the Option
;
; INPUT:     $($0):  Language to use
;            $($1):  OptionID to install
;
; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
;                            STATUS_NOLANGUAGE |
;                            STATUS_USERCANCEL |
;                            STATUS_FAILED
;-------------------------------------------------------------------------
[DeInstallOption]
    ;
    ; Set default values for
    ;
    set Status   = STATUS_FAILED
    ;
    ; extract parameters
    ;
    set Option   = $($1)

    ;
    ; Check if the language requested is supported
    ;
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_DeInstallOption
    endif
    read-syms Strings$($0)

    ;
    ; check to see if Option is supported.
    ;

    set OptionList = ^(Options, 0)
    ifcontains $(Option) in $(OptionList)
    else
        goto finish_DeInstallOption
    endif
    set OptionList = ""

    ;
    ; fetch details about option
    ;

    set MiniportDriver = #(Options, $(Option), 1)
    set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
    set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)

    ;
    ; check to see if file is installed
    ; if not give success
    ;

    LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
    ifstr(i) $(STATUS) == "NO"
        set Status = STATUS_SUCCESSFUL
        goto finish_DeInstallOption
    endif

    shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
    ifstr(i) $($R0) != "STATUS_SUCCESSFUL"
        ; this could happen if there is no start value or there is no
        ; key, in which case the option is not installed
        set Status = STATUS_SUCCESSFUL
        goto finish_DeInstallOption
    endif

    ifstr(i) $($R1) == $(!SERVICE_BOOT_START)
        shell "subroutn.inf" SetupMessage $(!STF_LANGUAGE) "WARNING" $(String3)
        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            goto do_removal
        endif
        ifstr(i) $($R1) == "CANCEL"
            goto finish_DeInstallOption
        endif
    endif

do_removal =+
    ;
    ; disable the registry entry
    ;

    shell "registry.inf" RemoveServicesEntry $(MiniportDriver)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "SCSI.INF: Failed to shell RemoveServicesEntry"
        goto finish_DeInstallOption
    endif

    ifstr(i) $($R0) != STATUS_SUCCESSFUL
        Debug-Output "SCSI.INF: Failed to disable services entry"
        goto finish_DeInstallOption
    endif

    ;
    ; we won't remove the file because we can only do so during the next boot.
    ; if the user chooses to reinstall the same driver during this boot
    ; he will still end up deleting the driver on next boot. if the file
    ; should be deleted a warning should be put up saying that the user should
    ; not try to reinstall the driver during this boot
    ;
    ;    AddFileToDeleteList $(FilePath)

    set Status = STATUS_SUCCESSFUL

finish_DeInstallOption =+
    return $(Status)


;-------------------------------------------------------------------------
; 5. GetInstalledOptions:
;
; FUNCTION:  To find out the list of options which are installed
;
; INPUT:     $($0): Language to Use
;
; OUTPUT:    $($R0): STATUS: STATUS_SUCCESSFUL |
;                            STATUS_FAILED
;
;            $($R1): List of options installed
;            $($R2): Option installed Text List
;-------------------------------------------------------------------------
[GetInstalledOptions]
    set Status = STATUS_FAILED
    set InstalledOptions = {}
    set InstalledOptionsText = {}

    ;
    ; Check if the language requested is supported
    ;
    set LanguageList = ^(LanguagesSupported, 1)
    Ifcontains(i) $($0) in $(LanguageList)
    else
        set Status = STATUS_NOLANGUAGE
        goto finish_GetInstalledOptions
    endif

    set OptionList = ^(Options, 0)
    ForListDo $(OptionList)
        set MiniportDriver = #(Options, $($), 1)
        set MiniportFile   = #(Files-ScsiMiniportDrivers, $(MiniportDriver), 2)
        set FilePath       = $(!STF_WINDOWSSYSPATH)"\drivers\"$(MiniportFile)
        LibraryProcedure STATUS,$(!LIBHANDLE),CheckFileExistance $(FilePath)
        ifstr(i) $(STATUS) == "YES"
            shell "registry.inf" GetServicesEntryStart $(MiniportDriver)
            ifint $($ShellCode) == $(!SHELL_CODE_OK)
                ifstr(i) $($R0) == STATUS_SUCCESSFUL
                    ifstr(i) $($R1) != $(!SERVICE_DISABLED)

                        set OptionText = #(OptionsText$($0), $($), 1)
                        set InstalledOptions     = >($(InstalledOptions), $($))
                        set InstalledOptionsText = >($(InstalledOptionsText), $(OptionText))

                    endif
                endif
            endif
        endif
    EndForListDo
    set Status = STATUS_SUCCESSFUL
finish_GetInstalledOptions =+
    Return $(Status) $(InstalledOptions) $(InstalledOptionsText)


;**************************************************************************
; 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 = "PCMCIA IDE Driver"
    String2 = "Choose Continue to begin copying driver files."
    String3 = "The Adapter has been marked as a boot device.  Removing "+
              "it may cause the system not to boot."$(!LF)$(!LF)"Are you sure "+
              "you want to remove the Adapter."

;**************************************************************************

[Source Media Descriptions]
    1  = "Softex PC Card Driver Disk"

;**************************************************************************

[Files-ScsiMiniportDrivers]
PcDisk = 1,PcDisk.sys , SIZE=15744

;------------------------ modified registry functions -------------------
[RegistryConstants]
    MaskAllAccess          = 33554432
    NoTitle                = 0
    RegLastError           = $(!REG_ERROR_SUCCESS)
[MakeServicesEntry]
    set Status = STATUS_FAILED
    read-syms RegistryConstants
    Debug-Output "REGISTRY.INF: Creating Services node: "$($0)
    OpenRegKey $(!REG_H_LOCAL) "" "system\"$(!STF_CONTROLSET)"\services" $(MaskAllAccess) ServicesKey
    ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
        Debug-Output "REGISTRY.INF: Failed to open services key"
        goto finish_MakeServicesEntry
    endif
    set StandardSet = { Type,           +
                        Start,          +
                        ErrorControl,   +
                        Group,          +
                        Dependencies,   +
                        StartName,      +
                        Password,       +
                        BinaryPathName, +
                        DisplayName     +
                      }
    ForListDo $(StandardSet)
        set $($) = ""
    EndForListDo
    set KeyValues = {}
    ForListDo $($1)
       set Var   = *($($), 1)
       set Value = *($($), 4)
       ifcontains(i) $(Var) in $(StandardSet)
           set $(Var) = $(Value)
       else
           set KeyValues = >($(KeyValues), $($))
       endif
    EndForListDo
    set Error = NO
    ForListDo { Type, Start, ErrorControl, BinaryPathName }
        ifstr(i) $($($)) == ""
            set Error = YES
        endif
    EndForListDo
    ifstr(i) $(Error) == YES
        Debug-Output "REGISTRY.INF: MakeServicesEntry was not passed in one of the three values: Type, Start, ErrorControl"
        CloseRegKey $(ServicesKey)
        goto finish_MakeServicesEntry
    endif
    set ServiceName = $($0)
    LibraryProcedure STATUS, $(!LIBHANDLE), SetupCreateService $(ServiceName)      +
                                                               $(DisplayName)      +
                                                               $(Type)             +
                                                               $(Start)            +
                                                               $(ErrorControl)     +
                                                               $(BinaryPathName)   +
                                                               $(Group)            +
                                                               $(Dependencies)     +
                                                               $(StartName)        +
                                                               $(Password)
    ifstr(i) $(STATUS) != "SUCCESS"
        Debug-Output "REGISTRY.INF: MakeServicesEntry: SetupCreateService function failed"
        CloseRegKey $(ServicesKey)
        goto finish_MakeServicesEntry
    endif
    set KeyPath   = {{$($0), $(NoTitle), $(MaskAllAccess)}}
    shell "registry.inf" CreateKey $(ServicesKey) $(KeyPath) $(KeyValues)
    ifint $($ShellCode) != $(!SHELL_CODE_OK)
        Debug-Output "REGISTRY.INF: Failed to shell CreateKey."
        CloseRegKey $(ServicesKey)
        goto error_MakeServicesEntry
    endif
    ifstr(i) $($R0) != STATUS_SUCCESSFUL
        Debug-Output "REGISTRY.INF: Failed to create services node."
        CloseRegKey $(ServicesKey)
        goto error_MakeServicesEntry
    endif
    set MiniportKey = $($R1)
    ifstr(i) $($2) != ""
        set KeyPath   = {{$($5), $(NoTitle), $(MaskAllAccess)}}
        set KeyValues = $($2)
        shell "registry.inf" CreateKey $(MiniportKey) $(KeyPath) $(KeyValues)
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            CloseRegKey $(ServicesKey)
            CloseRegKey $(MiniportKey)
            goto error_MakeServicesEntry
        endif
        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            CloseRegKey $(ServicesKey)
            CloseRegKey $(MiniportKey)
            goto error_MakeServicesEntry
        endif
        set ParametersKey = $($R1)
        ForListDo $($3)
            set EntryName = "Device"
            set KeyPath   = {{$(EntryName), $(NoTitle), $(MaskAllAccess)}}
            set KeyValues = $($3)
            shell "registry.inf" CreateKey $(ParametersKey) $(KeyPath) $(KeyValues)
            ifint $($ShellCode) != $(!SHELL_CODE_OK)
                CloseRegKey $(ServicesKey)
                CloseRegKey $(MiniportKey)
                CloseRegKey $(ParametersKey)
                goto error_MakeServicesEntry
            endif
            ifstr(i) $($R0) != STATUS_SUCCESSFUL
                CloseRegKey $(ServicesKey)
                CloseRegKey $(MiniportKey)
                CloseRegKey $(ParametersKey)
                goto error_MakeServicesEntry
            endif
            CloseRegKey $($R1)
        EndForListDo
        CloseRegKey $(ParametersKey)
    endif
    CloseRegKey $(MiniportKey)
    ifstr(i) $($4) != {}
        OpenRegKey $(ServicesKey) "" "eventlog\system" $(MaskAllAccess) EventLogKey
        ifint $(RegLastError) != $(!REG_ERROR_SUCCESS)
            Debug-Output "REGISTRY.INF: Failed to open eventlog key"
            CloseRegKey $(ServicesKey)
            goto error_MakeServicesEntry
        endif
        set KeyPath   = {{$($0), $(NoTitle), $(MaskAllAccess)}}
        set KeyValues = $($4)
        shell "registry.inf" CreateKey $(EventLogKey) $(KeyPath) $(KeyValues)
        ifint $($ShellCode) != $(!SHELL_CODE_OK)
            CloseRegKey $(ServicesKey)
            CloseRegKey $(EventLogKey)
            goto error_MakeServicesEntry
        endif
        ifstr(i) $($R0) != STATUS_SUCCESSFUL
            CloseRegKey $(ServicesKey)
            CloseRegKey $(EventLogKey)
            goto error_MakeServicesEntry
        endif
        CloseRegKey $($R1)
        CloseRegKey $(EventLogKey)
    endif
    CloseRegKey $(ServicesKey)
    set Status = STATUS_SUCCESSFUL
    goto finish_MakeServicesEntry
error_MakeServicesEntry = +
    shell "registry.inf" ModifyServicesEntry $($0) $(!SERVICE_DISABLED)
finish_MakeServicesEntry = +
    Return $(Status)

[FileDependentDlgENG]
Help        = "&Help"
Exit        = "Cancel"
OK          = "OK"
HelpContext = ""
Continue    = "Continue"
Cancel      = "Cancel"
Label1 = "&IRQ Level:"
Label2 = "I/O &Port Address:"
DlgType = "RadioCombination"
DlgTemplate = "NE2000"
Caption =  "PCMCIA IDE Driver Parameters"
Combo1List = $(IRQList)
Combo1Out  = $(IRQValue)
Combo2List = $(IOBaseAddrHexList)
Combo2Out  = $(IOBaseAddress)
ComboListItemsIn  = {Combo1List, Combo2List}
ComboListItemsOut = {Combo1Out, Combo2Out}
EditTextIn = ""
EditTextLim = ""
CBOptionsGreyed = {}
NotifyFields = {NO, NO}
HelpContext = $(!IDH_DB_OEMNADN2_INS)

Download Driver Pack

How To Update Drivers Manually

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.

server: web2, load: 0.68