[Version] signature="$CHICAGO$" Class=MEDIA ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318} Provider=%MSFT% ; The following line is used only when the INF comes with the Windows system ; IHV needs to comment out the following line for their OEM redistributed disk. ; LayoutFile=layout.inf, layout1.inf, layout2.inf ; You must specify which platform is supported by each SourceDisksNames section ; Valid platform identifiers include .x86, .ia64, .alpha, .axp64 [SourceDisksNames.NT] 333=%DiskDescription%,,, ; You must also specify which platform is supported by each SourceDisksFiles section ; Valid platform identifiers include .x86, .ia64, .alpha, .axp64 [SourceDisksFiles.NT] gfxswap.dll=333 gfxswap.sys=333 gfxswap.inf=333 [Manufacturer] %Msft%=Microsoft ; Excluding drivers from the "Add New Hardware" list. [ControlFlags] ExcludeFromSelect=* ; ; Note that the GUID here is the same as %GFX.DeviceId%. It is a unique ; identifier for the device very similar to hardware PnP IDs. You must ; generate a new GUID for your own GFX. Do not use the one from this sample. ; [Microsoft] %GFX.DeviceDesc%=GFX,SW\{18265810-4768-483a-8fd3-3b6a81d8f5f2} [DestinationDirs] GFX.CopySys = 12 ; %windir%\system32\drivers GFX.UI = 11 ; %windir%\system32 GFX.CopyINF = 24,DDK ; Applications directory\DDK ; ; This is the section that is invoked by Install. ; [DefaultInstall] CopyFiles=GFX.UI, GFX.CopyINF AddReg=GFX.RunOnce.AddReg RegisterDlls = GFXSwapRegister [GFX.CopyINF] gfxswap.inf [GFX.UI] gfxswap.dll ; ; There should be a runonce line for each class that the object server will ; create. The "GFXx" label has to be unique for each line. ; [GFX.RunOnce.AddReg] HKLM,%RunOnce%,"GFX0",,"rundll32.exe streamci,StreamingDeviceSetup %GFX.DeviceId%,%GFX.Ref%,%KSCATEGORY_AUDIO%,%24%\DDK\gfxswap.inf,GFX.Audio.Install" HKLM,%RunOnce%,"GFX1",,"rundll32.exe streamci,StreamingDeviceSetup %GFX.DeviceId%,%GFX.Ref%,%KSCATEGORY_DATATRANSFORM%,%24%\DDK\gfxswap.inf,GFX.Transform.Install" [GFXSwapRegister] 11, ,GFXSwap.dll,1 ; ; This section is for the device (see above at [Microsoft]) ; [GFX] CopyFiles=GFX.CopySys [GFX.Services] AddService=GfxSwap,0x00000002,GFX.ServiceInstall [GFX.CopySys] gfxswap.sys [GFX.ServiceInstall] DisplayName=%GFX.DeviceDesc% ServiceType=%SERVICE_KERNEL_DRIVER% StartType=%SERVICE_DEMAND_START% ErrorControl=%SERVICE_ERROR_NORMAL% ServiceBinary=%10%\system32\drivers\gfxswap.sys ; ; This get called by RunOnce. ; [GFX.Audio.Install] AddReg=GFX.Interface.AddReg AddReg=GFX.Audio.AddReg AddReg=GFX.AddNames.AddReg ; ; This get called by RunOnce. ; [GFX.Transform.Install] AddReg=GFX.Interface.AddReg [GFX.Interface.AddReg] HKR,,CLSID,,%Proxy.CLSID% HKR,,FriendlyName,,%GFX.FriendlyName% [GFX.Audio.AddReg] ; Format of these lines is ; [reg-root],[subkey],[value-entry-name],[flags],[value] ; ; This key must be present for the audio system to recognize the filter as a ; GFX HKR,Gfx,,%FLG_ADDREG_KEYONLY% ; Store CLSID of the your vendor-specific UI COM object. Note you ; must use a CLSID different from the one in this sample! ; This GUID is the same as the GUID in section "GFXPropLib" in file GFXprop.idl HKR,Gfx\UserInterface\CLSID,,%FLG_ADDREG_TYPE_SZ%,"{25957AEC-9A65-464B-AE00-8AB9F2ABC678}" ; If you wish to automatically apply this GFX to some specific audio hardware, ; you can customize and include the following lines. ; Specify either GFX_TYPE_RENDER or GFX_TYPE_CAPTURE: ; HKR,Gfx\AutoLoad\0,Type,%FLG_ADDREG_TYPE_DWORD%,%GFX_TYPE_RENDER% ; Specify your PnP hardware ID here: ; HKR,Gfx\AutoLoad\0,HardwareId,%FLG_ADDREG_TYPE_SZ%,"USB\VID_mmmm&PID_nnnn" ; Specify the reference string used for the KSCATEGORY_AUDIO interface ; exposed by your hardware driver. "Global" is typical for USB devices. ; HKR,Gfx\AutoLoad\0,ReferenceString,%FLG_ADDREG_TYPE_SZ%,"Global" ; Set this value to 1 only if it doesn't already exist ; HKR,Gfx\AutoLoad\0,NewAutoLoad,%FLG_ADDREG_TYPE_DWORD_NOCLOBBER%,1 ; If you wish to specify more than one PnP hardwre ID, just repeat ; the above lines but replace Gfx\AutoLoad\0 with Gfx\AutoLoad\1, ; Gfx\AutoLoad\2, etc. ; ; Make the sample autoload on the Microsoft USB speakers. ; Modify the PnP ID to fit your own device. ; HKR,Gfx\AutoLoad\0,Type,%FLG_ADDREG_TYPE_DWORD%,%GFX_TYPE_RENDER% HKR,Gfx\AutoLoad\0,HardwareId,%FLG_ADDREG_TYPE_SZ%,"USB\VID_045E&PID_0014&MI_00" HKR,Gfx\AutoLoad\0,ReferenceString,%FLG_ADDREG_TYPE_SZ%,"Global" HKR,Gfx\AutoLoad\0,NewAutoLoad,%FLG_ADDREG_TYPE_DWORD_NOCLOBBER%,1 ; ; This section is used to add the friendly names of the topology nodes. ; Whenever you generate a new name for the GFX node(s) you need to create ; a new GUID. This GUID (GFXGUID.ChannelSwap in Strings section) needs ; to be the same than GUID GFXSAMPLE_NODENAME_CHANNEL_SWAP in file msgfx.h ; [GFX.AddNames.AddReg] HKLM,%MediaCategories%\%GFXGUID.ChannelSwap%,Name,,%GFXNode.ChannelSwap% HKLM,%MediaCategories%\%GFXGUID.ChannelSwap%,Display,1,00,00,00,00 [Strings] ; non-localizeable RunOnce="SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce" ; ; GFX.DeviceId is a unique device ID. GUIDGEN one of these and copy it into ; the Microsoft section above (you need to create your own GUID for your GFX). ; ; If your driver implements multiple AvStream filters, then generate a ; different GFX.Ref for each. These GUIDs need to be unique too, that means ; you need to create your own GUIDs for GFX.Ref. The GUID "GFX.Ref" needs to be ; the same as GUID KSNAME_MsGfxSample in file msgfx.h. ; GFX.DeviceId = "{18265810-4768-483a-8fd3-3b6a81d8f5f2}" GFX.Ref = "{9b365890-165f-11d0-a195-0020afd156e4}" GFX_TYPE_RENDER = 0x00000001 GFX_TYPE_CAPTURE = 0x00000002 KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}" KSCATEGORY_DATATRANSFORM = "{2EB07EA0-7E70-11D0-A5D6-28DB04C10000}" KSCATEGORY_RENDER = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}" MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories" Proxy.CLSID = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}" GFXGUID.ChannelSwap = "{2B143FE6-4F67-4b12-8039-CE03EBEF1290}" SERVICE_KERNEL_DRIVER=1 SERVICE_DEMAND_START=3 SERVICE_ERROR_NORMAL=1 FLG_ADDREG_TYPE_SZ = 0x00000000 FLG_ADDREG_KEYONLY = 0x00000010 FLG_ADDREG_TYPE_MULTI_SZ = 0x00010000 FLG_ADDREG_TYPE_MULTI_SZ_APPEND = 0x00010008 FLG_ADDREG_TYPE_DWORD = 0x00010001 FLG_ADDREG_TYPE_DWORD_NOCLOBBER = 0x00010003 ;localizeable MSFT = "Microsoft" GFX.DeviceDesc = "Microsoft WDM Audio GFXSwap (sample)" GFX.FriendlyName = "Microsoft WDM Audio GFXSwap (sample)" GFXNode.ChannelSwap = "Channel Swap"