; Copyright (c) 1990-1999 Microsoft Corporation All rights Reserved
;
; Module Name:
;    mssb16.INF
;
; Abstract:
;    INF file for installing MSSB16 Sample Driver

[Version]
Signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
provider=%MSFT%
DriverVer = 12/1/1998, 5.0.0.0

[SourceDisksNames]
222=%DiskDescription%,,,

[SourceDisksFiles]
mssb16.sys=222

[Manufacturer]
%CLMfgName%=Creative

;;
;; Mechanism for excluding drivers from the "Add New Hardware" list.
;;
[ControlFlags]
;;ExcludeFromSelect = *CTL0001
;;ExcludeFromSelect = *CTL0031
;;ExcludeFromSelect = *CTL0041
;;ExcludeFromSelect = *CTL0042
;;ExcludeFromSelect = *CTL0043
;;ExcludeFromSelect = *CTL0044
;;ExcludeFromSelect = *CTL0045
;;ExcludeFromSelect = *CTL0046
;;ExcludeFromSelect = *CTL0047
ExcludeFromSelect = *CTL0051
ExcludeFromSelect = *CTL7FFF

;; *EXCLUDE is a made up ID to prevent rank 1 drivers from showing in list.
ExcludeFromSelect = *EXCLUDE

;; MSSB16 miniport
[Creative]
%*WDMPNPB003.DeviceDesc%=WDMPNPB003_Device, , *PNPB003
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0001
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0031
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0041
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0042
%*WDM_SB16.DeviceDesc%=WDM_SB16_FDMA,       , *CTL0043
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0044
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0045
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0046
%*WDM_SB16.DeviceDesc%=WDM_SB16,            , *CTL0047
%*CTL0051.DeviceDesc%=STUB_DEVICE,          , *CTL0051
%*CTL7FFF.DeviceDesc%=STUB_DEVICE,          , *CTL7FFF
%SBAWE_Virtual_Mpu.DeviceDesc%=STUB_DEVICE, , VIRTUAL\SBAWE-MPUEmulation

[STUB_DEVICE]

;; All the Creative PnP IDs, except CTL0043
[WDM_SB16]
AlsoInstall=ks.registration(ks.inf),wdmaudio.registration(wdmaudio.inf)
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

;; CTL0043 has FDMA enabled
[WDM_SB16_FDMA]
AlsoInstall=ks.registration(ks.inf),wdmaudio.registration(wdmaudio.inf),wdmaudio.fdma(wdmaudio.inf)
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

;; Non PnP SB16 Device!
[WDMPNPB003_Device]
AlsoInstall=ks.registration(ks.inf),wdmaudio.registration(wdmaudio.inf)
LogConfig=SB16.LC1,SB16.LC2,SB16.LC3,SB16.LC4,SB16.LC5,SB16.LC6,SB16.LC7,SB16.LC8
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

[WDM_SB16.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[WDMPNPB003_Device.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[WDM_SB16.Interface.Wave]
AddReg=WDM_SB16.Interface.Wave.AddReg
[WDM_SB16.Interface.Wave.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM_SB16.Wave.szPname%

[WDM_SB16.Interface.Topology]
AddReg=WDM_SB16.Interface.Topo.AddReg
;; warning!! must be "Topo" because "Topology" is too long
[WDM_SB16.Interface.Topo.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM_SB16.Topology.szPname%

[WDM.Interface.UART]
AddReg=WDM.Interface.UART.AddReg
[WDM.Interface.UART.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM.UART.szPname%

[WDM.Interface.FMSynth]
AddReg=WDM.Interface.FMSynth.AddReg
[WDM.Interface.FMSynth.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%WDM.FMSynth.szPname%

[WDM_SB16.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,msSB16.SYS
HKR,,NTMPDriver,,"msSB16.sys,sbemul.sys"

HKR,Drivers,SubClasses,,"wave,midi,mixer,aux"

HKR,Drivers\wave\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\midi\wdmaud.drv, Driver,,wdmaud.drv
HKR,Drivers\mixer\wdmaud.drv,Driver,,wdmaud.drv
HKR,Drivers\aux\wdmaud.drv,Driver,,wdmaud.drv

HKR,Drivers\wave\wdmaud.drv,Description,,%*WDMPNPB003.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%*WDMPNPB003.DeviceDesc%
HKR,Drivers\mixer\wdmaud.drv,Description,,%*WDMPNPB003.DeviceDesc%
HKR,Drivers\aux\wdmaud.drv,Description,,%*WDMPNPB003.DeviceDesc%

[DestinationDirs]
MSSB16.CopyList      = 10,system32\drivers ; %SystemRoot%\system32\drivers

[MSSB16.CopyList]
mssb16.sys

[WDMPNPB003_Device.FactDef]
ConfigPriority=NORMAL
IOConfig=220-22F
IOConfig=330-331
IOConfig=388-38B
IRQConfig=5
DMAConfig=1
DMAConfig=5


[SB16.LC1]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3
DMAConfig=5 , 6 , 7

[SB16.LC2]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3

[SB16.LC3]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=388-38B
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3
DMAConfig=5 , 6 , 7

[SB16.LC4]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=388-38B
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3

[SB16.LC5]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=330-331, 300-301
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3
DMAConfig=5 , 6 , 7

[SB16.LC6]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=330-331, 300-301
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3

[SB16.LC7]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=330-331, 300-301
IOConfig=388-38B
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3
DMAConfig=5 , 6 , 7

[SB16.LC8]
ConfigPriority=NORMAL
IOConfig=220-22F , 240-24F , 260-26F , 280-28F
IOConfig=330-331, 300-301
IOConfig=388-38B
IRQConfig=5 , 7 , 9 , 10
DMAConfig=0 , 1 , 3

;;**************** NT Install ****************

[STUB_DEVICE.NT]
[STUB_DEVICE.NT.SERVICES]
AddService=,0x2

[WDM_SB16.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

[WDM_SB16.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[WDM_SB16.NT.Services]
AddService = sb16,    0x00000002, sndblst_Service_Inst

[WDM_SB16_FDMA.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration, WDMAUDIO.FDMA
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

[WDM_SB16_FDMA.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[WDM_SB16_FDMA.NT.Services]
AddService = sb16,    0x00000002, sndblst_Service_Inst

[WDMPNPB003_Device.NT]
Include=ks.inf, wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration
LogConfig=SB16.LC1,SB16.LC2,SB16.LC3,SB16.LC4,SB16.LC5,SB16.LC6,SB16.LC7,SB16.LC8
CopyFiles=MSSB16.CopyList
AddReg=WDM_SB16.AddReg

[WDMPNPB003_Device.NT.FactDef]
ConfigPriority=NORMAL
IOConfig=220-22F
IOConfig=330-331
IOConfig=388-38B
IRQConfig=5
DMAConfig=1
DMAConfig=5

[WDMPNPB003_Device.NT.Interfaces]
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_Wave%,WDM_SB16.Interface.Wave
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_Topology%,WDM_SB16.Interface.Topology
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_CAPTURE%,%KSNAME_UART%,WDM.Interface.UART
AddInterface=%KSCATEGORY_AUDIO%,%KSNAME_FMSynth%,WDM.Interface.FMSynth
AddInterface=%KSCATEGORY_RENDER%,%KSNAME_FMSynth%,WDM.Interface.FMSynth

[WDMPNPB003_Device.NT.Services]
AddService = sb16,    0x00000002, sndblst_Service_Inst

[sndblst_Service_Inst]
DisplayName    = %sndblst.SvcDesc%
ServiceType    = 1                  ; SERVICE_KERNEL_DRIVER
StartType      = 3                  ; SERVICE_DEMAND_START
ErrorControl   = 1                  ; SERVICE_ERROR_NORMAL
ServiceBinary  = %10%\system32\drivers\mssb16.sys