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?
Read our customer testimonials to find out why our clients keep returning for their projects.
View Testimonials