Sample Code

Windows Driver Samples/ Microsoft slate system virtual audio device driver sample/ C++/ sysvad.inf/

[Version]
Signature="$CHICAGO$"
Class=MEDIA
Provider=%MSFT%
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
DriverVer = 02/22/2007, 6.0.6000.1
CatalogFile=sysvad.cat

[SourceDisksNames]
222="SYSVAD Driver Disk","",222

[SourceDisksFiles]
slateaudiosample.sys=222
swapapo.dll=222
proppageext.dll=222

[SignatureAttributes]
slateaudiosample.sys=SignatureAttributes.DRM
swapapo.dll=SignatureAttributes.PETrust

[SignatureAttributes.DRM]
DRMLevel=1300

[SignatureAttributes.PETrust]
PETrust=true

;;This syntax is only recognized on Windows XP and above- it is needed to install 64-bit drivers on
;;Windows Server 2003 Service Pack 1 and above.

[Manufacturer]
%MfgName%=MicrosoftDS,NTAMD64,NTIA64,NTARM

;;  For Windows Server 2003 Service Pack 1 and above, a 64-bit OS will not install a driver
;;  unless the Manufacturer and Models Sections explicitly show it is a driver for that platform
;;  But the individual model section decorations (or lack thereof) work as they always have.
;;  All of the model sections referred to are undecorated or NT-decorated, hence work on all platforms

[MicrosoftDS]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA,*SYSVAD_SLATEAUDIO

;; This section enables installing on x64 systems

[MicrosoftDS.NTAMD64]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA,*SYSVAD_SLATEAUDIO

;;  This section enables installing on Itanium systems

[MicrosoftDS.NTIA64]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA,*SYSVAD_SLATEAUDIO

;; This section enables installing on ARM systems

[MicrosoftDS.NTARM]
%SYSVAD_SA.DeviceDesc%=SYSVAD_SA,*SYSVAD_SLATEAUDIO


[DestinationDirs]
SYSVAD_SA.CopyList=12 ; windows\system32\drivers
SWAPAPO.CopyList=11 ; windows\system32

;======================================================
; SYSVAD_SA
;======================================================
[SYSVAD_SA]
AlsoInstall=ks.registration(ks.inf),wdmaudio.registration(wdmaudio.inf),MsApoFxProxy.Registration(wdmaudio.inf)
CopyFiles=SYSVAD_SA.CopyList,SWAPAPO.CopyList
AddReg=SYSVAD_SA.AddReg,SWAPAPO.AddReg

[SYSVAD_SA.CopyList]
slateaudiosample.sys

[SWAPAPO.CopyList]
swapapo.dll
proppageext.dll

[SYSVAD_SA.Interfaces]
;
; Interfaces for speaker (internal) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologySpeaker%, SYSVAD.I.TopologySpeaker
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeaker%, SYSVAD.I.TopologySpeaker

;
; Interfaces for speaker (external: headphone) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologySpeakerHeadphone%, SYSVAD.I.TopologySpeakerHeadphone
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeakerHeadphone%, SYSVAD.I.TopologySpeakerHeadphone

;
; Interfaces for HDMI (external) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologyHdmi%, SYSVAD.I.TopologyHdmi
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyHdmi%, SYSVAD.I.TopologyHdmi

;
; Interfaces for microphone (external: headphone) capture endpoint 
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicIn%, SYSVAD.I.TopologyMicIn
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicIn%, SYSVAD.I.TopologyMicIn

;
; Interfaces for microphone array 1 (internal: front) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray1%, SYSVAD.I.TopologyMicArray1
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray1%, SYSVAD.I.TopologyMicArray1

;
; Interfaces for microphone array 2 (internal: back) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray2%, SYSVAD.I.TopologyMicArray2
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray2%, SYSVAD.I.TopologyMicArray2

;
; Interfaces for microphone array 3 (internal: combined: front/back) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray3%, SYSVAD.I.TopologyMicArray3
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray3%, SYSVAD.I.TopologyMicArray3

;
; Interfaces for Bluetooth HFP speaker (external) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologyBthHfpSpeaker%, SYSVAD.I.TopologyBthHfpSpeaker
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyBthHfpSpeaker%, SYSVAD.I.TopologyBthHfpSpeaker

;
; Interfaces for Bluetooth HFP mic (external) capture endpoint 
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyBthHfpMic%, SYSVAD.I.TopologyBthHfpMic
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyBthHfpMic%, SYSVAD.I.TopologyBthHfpMic

[SYSVAD_SA.AddReg]
HKR,,AssociatedFilters,,"wdmaud,swmidi,redbook"
HKR,,Driver,,slateaudiosample.sys

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

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\wave\wdmaud.drv,Description,,%SYSVAD_SA.DeviceDesc%
HKR,Drivers\midi\wdmaud.drv,Description,,%SYSVAD_MIDI%
HKR,Drivers\mixer\wdmaud.drv,Description,,%SYSVAD_SA.DeviceDesc%

HKLM,%MEDIA_CATEGORIES%\%MicArray1CustomNameGUID%,Name,,%MicArray1CustomName%
HKLM,%MEDIA_CATEGORIES%\%MicArray2CustomNameGUID%,Name,,%MicArray2CustomName%
HKLM,%MEDIA_CATEGORIES%\%MicArray3CustomNameGUID%,Name,,%MicArray3CustomName%
HKLM,%MEDIA_CATEGORIES%\%MicInCustomNameGUID%,Name,,%MicInCustomName%

[SWAPAPO.AddReg]
; Stream effect APO COM registration
HKCR,CLSID\%FX_STREAM_CLSID%,,,%SFX_FriendlyName%
HKCR,CLSID\%FX_STREAM_CLSID%\InProcServer32,,,%11%\swapapo.dll
HKCR,CLSID\%FX_STREAM_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Mode effect APO COM registration
HKCR,CLSID\%FX_MODE_CLSID%,,,%MFX_FriendlyName%
HKCR,CLSID\%FX_MODE_CLSID%\InProcServer32,,,%11%\swapapo.dll
HKCR,CLSID\%FX_MODE_CLSID%\InProcServer32,ThreadingModel,,"Both"

; Property page COM registration
HKCR,CLSID\%AUDIOENDPOINT_EXT_UI_CLSID%,,,"CplPage Class"
HKCR,CLSID\%AUDIOENDPOINT_EXT_UI_CLSID%\InProcServer32,,,%11%\PropPageExt.dll
HKCR,CLSID\%AUDIOENDPOINT_EXT_UI_CLSID%\InProcServer32,ThreadingModel,,"Apartment"

; Effects UI page COM registration
HKCR,CLSID\%FX_UI_CLSID%,,,"CplPage Class"
HKCR,CLSID\%FX_UI_CLSID%\InProcServer32,,,%11%\PropPageExt.dll
HKCR,CLSID\%FX_UI_CLSID%\InProcServer32,ThreadingModel,,"Apartment"

; Stream effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "FriendlyName", ,%SFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "Flags", 0x00010001, 0x0000000d
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_STREAM_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

; Mode effect APO registration
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "FriendlyName", ,%MFX_FriendlyName%
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "Copyright", ,%MsCopyRight%
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MajorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MinorVersion", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "Flags", 0x00010001, 0x0000000d
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MinInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MaxInputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MinOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MaxOutputConnections", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "MaxInstances", 0x00010001, 0xffffffff
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "NumAPOInterfaces", 0x00010001, 1
HKCR,AudioEngine\AudioProcessingObjects\%FX_MODE_CLSID%, "APOInterface0", ,"{FD7F2B29-24D0-4B5C-B177-592C39F9CA10}"

;======================================================
; render interfaces: speaker (internal)
;======================================================
[SYSVAD.I.WaveSpeaker]
AddReg=SYSVAD.I.WaveSpeaker.AddReg

[SYSVAD.I.WaveSpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveSpeaker.szPname%

[SYSVAD.I.TopologySpeaker]
AddReg=SYSVAD.I.TopologySpeaker.AddReg,SWAPAPO.I.Association0.AddReg

[SYSVAD.I.TopologySpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologySpeaker.szPname%

HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%

; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; render interfaces: HDMI (external)
;======================================================
[SYSVAD.I.WaveHdmi]
AddReg=SYSVAD.I.WaveHdmi.AddReg
[SYSVAD.I.WaveHdmi.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveHdmi.szPname%

[SYSVAD.I.TopologyHdmi]
AddReg=SYSVAD.I.TopologyHdmi.AddReg
[SYSVAD.I.TopologyHdmi.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyHdmi.szPname%
; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; render interfaces: speaker (external: headphone)
;======================================================
[SYSVAD.I.WaveSpeakerHeadphone]
AddReg=SYSVAD.I.WaveSpeakerHeadphone.AddReg
[SYSVAD.I.WaveSpeakerHeadphone.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveSpeakerHeadphone.szPname%

[SYSVAD.I.TopologySpeakerHeadphone]
AddReg=SYSVAD.I.TopologySpeakerHeadphone.AddReg
[SYSVAD.I.TopologySpeakerHeadphone.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologySpeakerHeadphone.szPname%
; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; capture interfaces: mic in (external: headphone)
;======================================================
[SYSVAD.I.WaveMicIn]
AddReg=SYSVAD.I.WaveMicIn.AddReg
[SYSVAD.I.WaveMicIn.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveMicIn.szPname%

[SYSVAD.I.TopologyMicIn]
AddReg=SYSVAD.I.TopologyMicIn.AddReg
[SYSVAD.I.TopologyMicIn.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyMicIn.szPname%
; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; capture interfaces: mic array (internal: front)
;======================================================
[SYSVAD.I.WaveMicArray1]
AddReg=SYSVAD.I.WaveMicArray1.AddReg
[SYSVAD.I.WaveMicArray1.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveMicArray1.szPname%

[SYSVAD.I.TopologyMicArray1]
AddReg=SYSVAD.I.TopologyMicArray1.AddReg,SWAPAPO.I.Association0.AddReg

[SYSVAD.I.TopologyMicArray1.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyMicArray1.szPname%

HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%

; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; capture interfaces: mic array (internal: back)
;======================================================
[SYSVAD.I.WaveMicArray2]
AddReg=SYSVAD.I.WaveMicArray2.AddReg
[SYSVAD.I.WaveMicArray2.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveMicArray2.szPname%

[SYSVAD.I.TopologyMicArray2]
AddReg=SYSVAD.I.TopologyMicArray2.AddReg,SWAPAPO.I.Association0.AddReg

[SYSVAD.I.TopologyMicArray2.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyMicArray2.szPname%

HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%

; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; capture interfaces: mic array (internal: combined: front/back)
;======================================================
[SYSVAD.I.WaveMicArray3]
AddReg=SYSVAD.I.WaveMicArray3.AddReg
[SYSVAD.I.WaveMicArray3.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveMicArray3.szPname%

[SYSVAD.I.TopologyMicArray3]
AddReg=SYSVAD.I.TopologyMicArray3.AddReg,SWAPAPO.I.Association0.AddReg

[SYSVAD.I.TopologyMicArray3.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyMicArray3.szPname%

HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%

; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

[SYSVAD_SA.HW]
AddReg = AUDIOHW.AddReg

;======================================================
; render interfaces: Bluetooth HFP speaker (external)
;======================================================
[SYSVAD.I.WaveBthHfpSpeaker]
AddReg=SYSVAD.I.WaveBthHfpSpeaker.AddReg
[SYSVAD.I.WaveBthHfpSpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveBthHfpSpeaker.szPname%

[SYSVAD.I.TopologyBthHfpSpeaker]
AddReg=SYSVAD.I.TopologyBthHfpSpeaker.AddReg
[SYSVAD.I.TopologyBthHfpSpeaker.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyBthHfpSpeaker.szPname%
; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; capture interfaces: Bluetooth HFP mic (external)
;======================================================
[SYSVAD.I.WaveBthHfpMic]
AddReg=SYSVAD.I.WaveBthHfpMic.AddReg
[SYSVAD.I.WaveBthHfpMic.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.WaveBthHfpMic.szPname%

[SYSVAD.I.TopologyBthHfpMic]
AddReg=SYSVAD.I.TopologyBthHfpMic.AddReg,MsApoFxProxy.I.Association0.AddReg
[SYSVAD.I.TopologyBthHfpMic.AddReg]
HKR,,CLSID,,%Proxy.CLSID%
HKR,,FriendlyName,,%SYSVAD.TopologyBthHfpMic.szPname%
; Uncomment the following lines to opt-in to pull mode.
; HKR,EP\0,%PKEY_AudioEndpoint_Association%,,%KSNODETYPE_ANY%
; HKR,EP\0,%PKEY_AudioEndpoint_Supports_EventDriven_Mode%,0x00010001,0x1

;======================================================
; APO per-interface registry
;======================================================
[SWAPAPO.I.Association0.AddReg]
; Instruct audio endpoint builder to set CLSID for property page provider into the
; endpoint property store
HKR,EP\0,%PKEY_AudioEndpoint_ControlPanelPageProvider%,,%AUDIOENDPOINT_EXT_UI_CLSID%

; Instruct audio endpoint builder to set the CLSIDs for stream, mode, and endpoint APOs
; into the effects property store
HKR,FX\0,%PKEY_FX_StreamEffectClsid%,,%FX_STREAM_CLSID%
HKR,FX\0,%PKEY_FX_ModeEffectClsid%,,%FX_MODE_CLSID%
HKR,FX\0,%PKEY_FX_UserInterfaceClsid%,,%FX_UI_CLSID%

; Driver developer would replace the list of supported processing modes here
HKR,FX\0,%PKEY_SFX_ProcessingModes_Supported_For_Streaming%,0x00010000,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%
HKR,FX\0,%PKEY_MFX_ProcessingModes_Supported_For_Streaming%,0x00010000,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%
;HKR,FX\0,%PKEY_EFX_ProcessingModes_Supported_For_Streaming%,0x00010000,%AUDIO_SIGNALPROCESSINGMODE_DEFAULT%

;======================================================
; MsApoFxProxy APO registry
;======================================================
[MsApoFxProxy.I.Association0.AddReg]
HKR,FX\0,%PKEY_FX_Association%,,%KSNODETYPE_ANY%
HKR,FX\0,%PKEY_FX_EndpointEffectClsid%,,%FX_DISCOVER_EFFECTS_APO_CLSID%

;======================================================
; SYSVAD_SA
;======================================================
[SYSVAD_SA.NT]
Include=ks.inf,wdmaudio.inf
Needs=KS.Registration, WDMAUDIO.Registration, MsApoFxProxy.Registration
CopyFiles=SYSVAD_SA.CopyList,SWAPAPO.CopyList
AddReg=SYSVAD_SA.AddReg,SWAPAPO.AddReg

[SYSVAD_SA.NT.Interfaces]
;
; Interfaces for speaker (internal) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveSpeaker%, SYSVAD.I.WaveSpeaker
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologySpeaker%, SYSVAD.I.TopologySpeaker
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeaker%, SYSVAD.I.TopologySpeaker

;
; Interfaces for speaker (external: headphone) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveSpeakerHeadphone%, SYSVAD.I.WaveSpeakerHeadphone
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologySpeakerHeadphone%, SYSVAD.I.TopologySpeakerHeadphone
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologySpeakerHeadphone%, SYSVAD.I.TopologySpeakerHeadphone

;
; Interfaces for HDMI (external) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveHdmi%, SYSVAD.I.WaveHdmi
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologyHdmi%, SYSVAD.I.TopologyHdmi
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyHdmi%, SYSVAD.I.TopologyHdmi

;
; Interfaces for microphone (external: headphone) capture endpoint 
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicIn%, SYSVAD.I.WaveMicIn
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicIn%, SYSVAD.I.TopologyMicIn
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicIn%, SYSVAD.I.TopologyMicIn

;
; Interfaces for microphone array 1 (internal: front) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray1%, SYSVAD.I.WaveMicArray1
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray1%, SYSVAD.I.TopologyMicArray1
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray1%, SYSVAD.I.TopologyMicArray1

;
; Interfaces for microphone array 2 (internal: back) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray2%, SYSVAD.I.WaveMicArray2
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray2%, SYSVAD.I.TopologyMicArray2
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray2%, SYSVAD.I.TopologyMicArray2

;
; Interfaces for microphone array 3 (internal: combined: front/back) capture endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveMicArray3%, SYSVAD.I.WaveMicArray3
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyMicArray3%, SYSVAD.I.TopologyMicArray3
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyMicArray3%, SYSVAD.I.TopologyMicArray3

;
; Interfaces for Bluetooth HFP speaker (external) render endpoint.
;
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_RENDER%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveBthHfpSpeaker%, SYSVAD.I.WaveBthHfpSpeaker
AddInterface=%KSCATEGORY_AUDIO%, %KSNAME_TopologyBthHfpSpeaker%, SYSVAD.I.TopologyBthHfpSpeaker
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyBthHfpSpeaker%, SYSVAD.I.TopologyBthHfpSpeaker

;
; Interfaces for Bluetooth HFP mic (external) capture endpoint 
;
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_REALTIME%, %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_CAPTURE%,  %KSNAME_WaveBthHfpMic%, SYSVAD.I.WaveBthHfpMic
AddInterface=%KSCATEGORY_AUDIO%,    %KSNAME_TopologyBthHfpMic%, SYSVAD.I.TopologyBthHfpMic
AddInterface=%KSCATEGORY_TOPOLOGY%, %KSNAME_TopologyBthHfpMic%, SYSVAD.I.TopologyBthHfpMic

[SYSVAD_SA.NT.Services]
AddService=sysvad_slateaudiosample,0x00000002,sysvad_SlateAudioSample_Service_Inst

[sysvad_SlateAudioSample_Service_Inst]
DisplayName=%SYSVAD_SlateAudioSample.SvcDesc%
ServiceType=1
StartType=3
ErrorControl=1
ServiceBinary=%10%\system32\drivers\slateaudiosample.sys

[SYSVAD_SA.NT.HW]
AddReg = AUDIOHW.AddReg

[AUDIOHW.AddReg]
; FILE_DEVICE_SOUND
HKR,,DeviceType,0x10001,0x0000001D
; SDDL_DEVOBJ_SYS_ALL_ADM_RWX_WORLD_RWX_RES_RWX
HKR,,Security,,"D:P(A;;GA;;;SY)(A;;GRGWGX;;;BA)(A;;GRGWGX;;;WD)(A;;GRGWGX;;;RC)"

;======================================================
; WDF
;======================================================
[SYSVAD_SA.Wdf]
KmdfService = sysvad_slateaudiosample, SYSVAD_SA_WdfSect
[SYSVAD_SA_WdfSect]
KmdfLibraryVersion = $KMDFVERSION$

;======================================================
; COMMON
;======================================================
[Strings]

;Non-localizable

MSFT="Microsoft"

KSNAME_WaveSpeaker="WaveSpeaker"
KSNAME_TopologySpeaker="TopologySpeaker"

KSNAME_WaveSpeakerHeadphone="WaveSpeakerHeadphone"
KSNAME_TopologySpeakerHeadphone="TopologySpeakerHeadphone"

KSNAME_WaveHdmi="WaveHdmi"
KSNAME_TopologyHdmi= "TopologyHdmi"

KSNAME_WaveMicIn="WaveMicIn"
KSNAME_TopologyMicIn="TopologyMicIn"

KSNAME_WaveMicArray1="WaveMicArray1"
KSNAME_TopologyMicArray1="TopologyMicArray1"

KSNAME_WaveMicArray2="WaveMicArray2"
KSNAME_TopologyMicArray2="TopologyMicArray2"

KSNAME_WaveMicArray3="WaveMicArray3"
KSNAME_TopologyMicArray3="TopologyMicArray3"

KSNAME_WaveBthHfpSpeaker="WaveBthHfpSpeaker"
KSNAME_TopologyBthHfpSpeaker="TopologyBthHfpSpeaker"

KSNAME_WaveBthHfpMic="WaveBthHfpMic"
KSNAME_TopologyBthHfpMic="TopologyBthHfpMic"

Proxy.CLSID="{17CCA71B-ECD7-11D0-B908-00A0C9223196}"
KSCATEGORY_AUDIO="{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_RENDER="{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE="{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_REALTIME ="{EB115FFC-10C8-4964-831D-6DCB02E6F23F}"
KSCATEGORY_TOPOLOGY = "{DDA54A40-1E4C-11D1-A050-405705C10000}"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"
KSNODETYPE_ANY   = "{00000000-0000-0000-0000-000000000000}"

PKEY_AudioEndpoint_ControlPanelPageProvider  = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},1"
PKEY_AudioEndpoint_Association               = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},2"
PKEY_AudioEndpoint_Supports_EventDriven_Mode = "{1DA5D803-D492-4EDD-8C23-E0C0FFEE7F0E},7"

PKEY_FX_Association         = "{D04E05A6-594B-4FB6-A80D-01AF5EED7D1D},0"
PKEY_FX_PreMixEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},1"
PKEY_FX_PostMixEffectClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},2"
PKEY_FX_UserInterfaceClsid  = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},3"
PKEY_FX_StreamEffectClsid   = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},5"
PKEY_FX_ModeEffectClsid     = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},6"
PKEY_FX_EndpointEffectClsid = "{D04E05A6-594B-4fb6-A80D-01AF5EED7D1D},7"

PKEY_SFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},5"
PKEY_MFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},6"
;PKEY_EFX_ProcessingModes_Supported_For_Streaming = "{D3993A3F-99C2-4402-B5EC-A92A0367664B},7"

AUDIO_SIGNALPROCESSINGMODE_DEFAULT = "{C18E2F7E-933D-4965-B7D1-1EEF228D2AF3}"

; Driver developer would replace this CLSID with that of his own Sound CPL property page provider
AUDIOENDPOINT_EXT_UI_CLSID = "{6C57B2A2-91F5-4b90-93D5-FAB82485ECA6}"

; Driver developer would replace these CLSIDs with those of his own APOs.
FX_STREAM_CLSID    = "{B48DEA3F-D962-425a-8D9A-9A5BB37A9904}"
FX_MODE_CLSID      = "{06687E71-F043-403A-BF49-CB591BA6E103}"
FX_UI_CLSID        = "{19166F23-5F08-47F9-BB57-9F57A977D88E}"
FX_DISCOVER_EFFECTS_APO_CLSID  = "{889C03C8-ABAD-4004-BF0A-BC7BB825E166}"

MEDIA_CATEGORIES = "SYSTEM\CurrentControlSet\Control\MediaCategories"
MicArray1CustomNameGUID = {6ae81ff4-203e-4fe1-88aa-f2d57775cd4a}
MicArray2CustomNameGUID = {3fe0e3e1-ad16-4772-8382-4129169018ce}
MicArray3CustomNameGUID = {c04bdb7c-2138-48da-9dd4-2af9ff2e58c2}
MicInCustomNameGUID = {d48deb08-fd1c-4d1e-b821-9064d49ae96e}

;Localizable

SFX_FriendlyName = "Microsoft Audio Proxy APO Sample (stream effect)"
MFX_FriendlyName = "Microsoft Audio Proxy APO Sample (mode effect)"

MfgName="Microsoft Audio WDK"
MsCopyRight="Copyright (c) Microsoft Corporation All Rights Reserved"

SYSVAD_SA.DeviceDesc="Microsoft Virtual Audio Device (WDM) - Slate Sample"
SYSVAD_SlateAudioSample.SvcDesc="Microsoft Virtual Audio Device (WDM) - Slate Sample Driver"
SYSVAD_MIDI=Microsoft Virtual Audio Device (WDM) - Midi Device"

;; friendly names
SYSVAD.WaveSpeaker.szPname="SYSVAD Wave Speaker"
SYSVAD.TopologySpeaker.szPname="SYSVAD Topology Speaker"

SYSVAD.WaveSpeakerHeadphone.szPname="SYSVAD Wave Speaker Headphone"
SYSVAD.TopologySpeakerHeadphone.szPname="SYSVAD Topology Speaker Headphone"

SYSVAD.WaveHdmi.szPname="SYSVAD Wave HDMI"
SYSVAD.TopologyHdmi.szPname="SYSVAD Topology HDMI"

SYSVAD.WaveMicIn.szPname="SYSVAD Wave Microphone Headphone"
SYSVAD.TopologyMicIn.szPname="SYSVAD Topology Microphone Headphone"

SYSVAD.WaveMicArray1.szPname="SYSVAD Wave Microphone Array - Front"
SYSVAD.TopologyMicArray1.szPname="SYSVAD Topology Microphone Array - Front"

SYSVAD.WaveMicArray2.szPname="SYSVAD Wave Microphone Array - Rear"
SYSVAD.TopologyMicArray2.szPname="SYSVAD Topology Microphone Array - Rear"

SYSVAD.WaveMicArray3.szPname="SYSVAD Wave Microphone Array - Front/Rear"
SYSVAD.TopologyMicArray3.szPname="SYSVAD Topology Microphone Array - Front/Rear"

SYSVAD.WaveBthHfpSpeaker.szPname="SYSVAD Wave Bluetooth HFP Speaker"
SYSVAD.TopologyBthHfpSpeaker.szPname="SYSVAD Topology Bluetooth HFP Speaker"

SYSVAD.WaveBthHfpMic.szPname="SYSVAD Wave Bluetooth HFP Microphone"
SYSVAD.TopologyBthHfpMic.szPname="SYSVAD Topology Bluetooth HFP Microphone"

MicArray1CustomName= "Internal Microphone Array - Front"
MicArray2CustomName= "Internal Microphone Array - Rear"
MicArray3CustomName= "Internal Microphone Array - Front/Rear"
MicInCustomName= "External Microphone Headphone"

Our Services

  • What our customers say about us?

© 2011-2024 All Rights Reserved. Joya Systems. 4425 South Mopac Building II Suite 101 Austin, TX 78735 Tel: 800-DEV-KERNEL

Privacy Policy. Terms of use. Valid XHTML & CSS