;/++
;
;Copyright (c) 1999-2009 Oxford Semiconductor Inc.  All rights reserved.
;
;Abstract:
;    MF WDF driver installation file for Oxford Semiconductor UART products.
;
;--*/


[Version]
Signature                   = "$Windows NT$"
Class                       = MultiportSerial
ClassGuid                   = {50906cb8-ba12-11d1-bf5d-0000f805f530}
Provider                    = %Oxsemi%
;#OxData#CatalogFile                 = [[MfFileName]].cat
CatalogFile                 = OxMf.cat
;#OxEndData
;#OxData#DriverVer                   = [[UartDate]],[[UartVersion]]
DriverVer                   = 05/18/2009,7.00.0000.14
;#OxEndData

[DestinationDirs]
DestinationDirs_SystemDir   = 11   ; %windir%\system32
DestinationDirs_DriversDir  = 12   ; %windir%\system32\drivers

[SourceDisksNames]
0=%Desc_0%



[ControlFlags]
ExcludeFromSelect           = *


[SourceDisksFiles]
;#OxData#[[MfFileName]].sys                = 0
OxMf.sys                = 0
;#OxEndData
;#OxData#[[UartFileName]].sys               = 0
OxSer.sys               = 0
;#OxEndData
;#OxData#[[UartUiFileName]].dll                = 0
OxUi.dll                = 0
;#OxEndData
;#OxData#[[UartFileName]].oxbu                  = 0
OxSer.oxbu                  = 0
;#OxEndData
;#OxData#[[UartFileName]].png               = 0
OxSer.png               = 0
;#OxEndData



[Manufacturer]
%Oxsemi%                    = Oxsemi,ntAMD64


; For Win2K
[Oxsemi]
;#OxData#%MfDesc%                   = MfInstSect,PCI\VEN_[[MfVendorId]]&DEV_[[MfDeviceId]]
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9504
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9505
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9501
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9511
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_950b
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9521
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9538
;#OxEndData
;#OxData#%MfDesc%                    = MfInstSect,PCMCIA\[[SCfManufacturer]]-[[SCfManufacturerId]]-[[SCfCardId]]
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-0279-950b
%MfDesc%                    = MfInstSect,PCMCIA\PC_CARD-0279-950b
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-0279-952d
;#OxEndData
;#OxData#%MfDesc%                    = MfInstSect,PCMCIA\[[MCfManufacturer]]-[[MCfProduct]]-DEV0-[[MCfManufacturerId]]-[[MCfCardId]]
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-DEV0-0279-952a
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-DEV0-0279-952b
;#OxEndData
;#OxData#%MfDesc%                    = NO_DRV,PCI\VEN_[[DisabledVendorId]]&DEV_[[DisabledDeviceId]]
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9512
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9500
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9510
;#OxEndData

; For WinXP and later
[Oxsemi.ntAMD64]
;#OxData#%MfDesc%                   = MfInstSect,PCI\VEN_[[MfVendorId]]&DEV_[[MfDeviceId]]
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9504
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9505
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9501
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9511
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_950b
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9521
%MfDesc%                   = MfInstSect,PCI\VEN_1415&DEV_9538
;#OxEndData
;#OxData#%MfDesc%                    = MfInstSect,PCMCIA\[[SCfManufacturer]]-[[SCfProduct]]-[[SCfManufacturerId]]-[[SCfCardId]]
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-0279-950b
%MfDesc%                    = MfInstSect,PCMCIA\PC_CARD-GENERIC-0279-950b
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-0279-952d
;#OxEndData
;#OxData#%MfDesc%                    = MfInstSect,PCMCIA\[[MCfManufacturer]]-[[MCfProduct]]-DEV0-[[MCfManufacturerId]]-[[MCfCardId]]
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-DEV0-0279-952a
%MfDesc%                    = MfInstSect,PCMCIA\CF_CARD-GENERIC-DEV0-0279-952b
;#OxEndData
;#OxData#%MfDesc%                    = NO_DRV,PCI\VEN_[[DisabledVendorId]]&DEV_[[DisabledDeviceId]]
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9512
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9500
%MfDesc%                    = NO_DRV,PCI\VEN_1415&DEV_9510
;#OxEndData


[NO_DRV]

[NO_DRV.Services]
AddService                  = , %SPSVCINST_ASSOCSERVICE% ; null service install


[MfInstSect]
;#OxData#CopyINF                     = [[UartFileName]].inf
CopyINF                     = OxSer.inf
;#OxEndData
CopyFiles                   = DestinationDirs_SystemDir,DestinationDirs_DriversDir
AddReg                      = MfInstSect_AddReg

[MfInstSect_AddReg]
;#OxData#HKR,,PluginName,%REG_MULTI_SZ%,"[[UartFileName]].oxbu"
HKR,,PluginName,%REG_MULTI_SZ%,"OxSer.oxbu"
;#OxEndData


[MfInstSect.HW]
AddReg                      = MfInstSect.HW_AddReg

[MfInstSect.HW_AddReg]
;HKR,,"OxsemiOverrideBase0", %REG_DWORD%, 0x2F8
;HKR,,"OxsemiOverrideBase1", %REG_DWORD%, 0x3E8


[MfInstSect.Services]
;#OxData#AddService                  = [[MfFileName]],%SPSVCINST_ASSOCSERVICE%,MfInstSect.Services_AddService,EventLog_AddService
AddService                  = OxMf,%SPSVCINST_ASSOCSERVICE%,MfInstSect.Services_AddService,EventLog_AddService
;#OxEndData

[MfInstSect.HW_AddReg]
; Support MSI
HKR,"Interrupt Management",%REG_KEYONLY%
HKR,"Interrupt Management\MessageSignaledInterruptProperties",%REG_KEYONLY%
HKR,"Interrupt Management\MessageSignaledInterruptProperties",MSISupported,%REG_DWORD%,1

[MfInstSect.Services_AddService]
ServiceType                 = %SERVICE_KERNEL_DRIVER%
StartType                   = %SERVICE_DEMAND_START%
ErrorControl                = %SERVICE_ERROR_NORMAL%
;#OxData#ServiceBinary               = %12%\[[MfFileName]].sys
ServiceBinary               = %12%\OxMf.sys
;#OxEndData
LoadOrderGroup              = Extended base


[EventLog_AddService]
AddReg                      = EventLog_AddService_AddReg

[EventLog_AddService_AddReg]
HKR,,EventMessageFile,%REG_EXPAND_SZ%,"%%SystemRoot%%\System32\IoLogMsg.dll"
HKR,,TypesSupported,%REG_DWORD%,7



;-------------------------------------------------------------------------
; Coinstaller installation
;-------------------------------------------------------------------------
[DestinationDirs]
CoInstaller_CopyFiles       = 11    ; %windir%\system32


[SourceDisksFiles]
; make sure the number matches with SourceDisksNames
WdfCoinstaller01007.dll     = 0


[MfInstSect.CoInstallers]
AddReg                      = CoInstaller_AddReg
CopyFiles                   = CoInstaller_CopyFiles


[MfInstSect.Wdf]
;#OxData#KmdfService                 = [[MfFileName]],MfInstSect.Wdf_KmdfService
KmdfService                 = OxMf,MfInstSect.Wdf_KmdfService
;#OxEndData


[CoInstaller_CopyFiles]
WdfCoinstaller01007.dll

[CoInstaller_AddReg]
; Add WDF class coinstaller
HKR,,CoInstallers32,%REG_MULTI_SZ%,"WdfCoinstaller01007.dll,WdfCoInstaller"

[MfInstSect.Wdf_KmdfService]
KmdfLibraryVersion          = 1.7


[DestinationDirs_SystemDir]
;#OxData#[[UartUiFileName]].dll
OxUi.dll
;#OxEndData
;#OxData#[[UartFileName]].oxbu
OxSer.oxbu
;#OxEndData
;#OxData#[[UartFileName]].png
OxSer.png
;#OxEndData

[DestinationDirs_DriversDir]
;#OxData#[[MfFileName]].sys
OxMf.sys
;#OxEndData
;#OxData#[[UartFileName]].sys
OxSer.sys
;#OxEndData



[Strings]
;
; *******   Localizable Strings   *******
;#OxData#Oxsemi                      = "[[Manufacturer]]"
Oxsemi                      = "Oxford Semiconductor"
;#OxEndData
;#OxData#MfDesc                      = "[[MfDeviceDescription]]"
MfDesc                      = "Serial Bus Adapter"
;#OxEndData
;#OxData#Desc_0                      = "[[MfDriverDescription]]"
Desc_0                      = "Oxford Semiconductor UART Bus Driver"
;#OxEndData

; ******* Non Localizable Strings *******
SERVICE_BOOT_START          = 0x0
SERVICE_SYSTEM_START        = 0x1
SERVICE_AUTO_START          = 0x2
SERVICE_DEMAND_START        = 0x3
SERVICE_DISABLED            = 0x4

SERVICE_KERNEL_DRIVER       = 0x1

SERVICE_ERROR_IGNORE        = 0x0
SERVICE_ERROR_NORMAL        = 0x1
SERVICE_ERROR_SEVERE        = 0x2
SERVICE_ERROR_CRITICAL      = 0x3

SPSVCINST_ASSOCSERVICE      = 0x2

REG_SZ                      = 0x00000000
REG_BINARY                  = 0x00000001
REG_KEYONLY                 = 0x00000010
REG_MULTI_SZ                = 0x00010000
REG_EXPAND_SZ               = 0x00020000
REG_DWORD                   = 0x00010001



;#OxComment#-------------------------------------------------------------------
;#OxComment#       Oxide definitions. Do not modify
;#OxComment#-------------------------------------------------------------------

;#OxGlobalSection#Manufacturer information
    ;#OxGroup#Manufacturer name
        ;#OxDefine#Manufacturer#Name #String[32]
    ;#OxEndGroup
;#OxEndSection

;#OxGlobalSection#UART Driver Version
    ;#OxGroup#Driver version information
        ;#OxDefine#UartVersion#Driver Version#String[12]
        ;#OxDefine#UartDate#Date#Date
    ;#OxEndGroup
;#OxEndSection


;#OxGlobalSection#Device and Driver Descriptions
    ;#OxGroup#Multiport Descriptions
        ;#OxDefine#MfDeviceDescription#Multiport Device#String[48]
        ;#OxDefine#MfDriverDescription#Multiport Driver  #String[48]
    ;#OxEndGroup
    ;#OxGroup#UART Port Descriptions
        ;#OxDefine#UartDeviceDescription#UART Device#String[48]
        ;#OxDefine#UartDriverDescription#UART Driver  #String[48]
    ;#OxEndGroup
;#OxEndSection

;#OxGlobalSection#UART File Names
    ;#OxGroup#These file names should not be left with their default Oxford Semiconductor names
        ;#OxDefine#MfFileName#Multiport Driver          #FileName[32,false,oxmf]
        ;#OxDefine#UartFileName#UART Driver             #FileName[32,false,oxser]
        ;#OxDefine#UartUiFileName#UART User Interface#FileName[32,false,oxui]
    ;#OxEndGroup
;#OxEndSection

;#OxGlobalSection#Supported PCI UART Devices
    ;#OxMultiGroup#Remove all entries if PCI devices are not supported
        ;#OxDefine#MfVendorId#Vendor Id#VendorId
        ;#OxDefine#MfDeviceId#Device Id#PCIDeviceId
    ;#OxEndGroup
;#OxEndSection

;#OxGlobalSection#Disabled PCI UART Devices
    ;#OxMultiGroup#These functions will have a NULL driver loaded. Remove the entries if this is not required.
        ;#OxDefine#DisabledVendorId#Vendor Id#VendorId
        ;#OxDefine#DisabledDeviceId#Device Id#PCIDeviceId
    ;#OxEndGroup
;#OxEndSection

;#OxGlobalSection#Supported Single Function PC Card UART Devices
    ;#OxMultiGroup#Remove all entries if single function PC Card devices are not supported
        ;#OxDefine#SCfManufacturer#Product Information#String[32,true]
        ;#OxDefine#SCfProduct#Product Name#String[32,true]
        ;#OxDefine#SCfManufacturerId#Manufacturer Id#ManufacturerId
        ;#OxDefine#SCfCardId#Card Id#CfCardId
    ;#OxEndGroup    
 ;#OxEndSection

;#OxGlobalSection#Supported Multifunction PC Card UART Devices
	;#OxMultiGroup#Remove all entries if multifunction PC Card devices are not supported
        ;#OxDefine#MCfManufacturer#Product Information#String[32,true]
        ;#OxDefine#MCfProduct#Product Name#String[32,true]
        ;#OxDefine#MCfManufacturerId#Manufacturer Id#ManufacturerId
        ;#OxDefine#MCfCardId#Card Id#CfCardId
    ;#OxEndGroup
;#OxEndSection
