# GFX driver unable to run in poweruser mode



## manash_manit (Oct 6, 2008)

Hi all,

I have usb audio GFX driver which is running sucessfully in admin mode,
but when I try to run the same in Poweruser mode it fails.

********************************************************
I am pasting my inf file :

; Polycom AEC Driver Information file : PlcmAEC.inf
; Copyright(C) 2005-2006 Polycom, Inc.
; For Windows XP

[Version]
signature="$CHICAGO$"
Class=MEDIA
ClassGUID={4d36e96c-e325-11ce-bfc1-08002be10318}
Provider=%PLCM%
DriverVer=04/14/2006,1.0.0.050
CatalogFile=PlcmAEC.cat

; 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]
1=%SOURCE_DISK_NAME%,,,

; You must also specify which platform is supported by each SourceDisksFiles section
; Valid platform identifiers include .x86, .ia64, .alpha, .axp64
[SourceDisksFiles]
PlcmAEC.dll=1
PlcmAEC.sys=1
PlcmAEC.inf=1

[Manufacturer]
%PLCM%=Polycom

; 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. 
;
[Polycom]
%GFX.DeviceDesc%=GFX,SW\{4CD3C03D-AA5C-4d84-9454-3DF8A8715642}

[DestinationDirs]
GFX.CopySys = 12 ; %windir%\system32\drivers
GFX.UI = 11 ; %windir%\system32
GFX.CopyINF = 24,PlcmAEC	; Applications PlcmAEC

;
; This is the section that is invoked by Install.
;
[DefaultInstall]
CopyFiles=GFX.UI, GFX.CopyINF
AddReg=GFX.RunOnce.AddReg
RegisterDlls = GFXPlcmAECRegister

[GFX.CopyINF]
PlcmAEC.inf

[GFX.UI]
PlcmAEC.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%,C:\PlcmAEC\PlcmAEC.inf,GFX.Audio.Install"
HKLM,%RunOnce%,"GFX1",,"rundll32.exe streamci,StreamingDeviceSetup %GFX.DeviceId%,%GFX.Ref%,%KSCATEGORY_DATATRANSFORM%,C:\PlcmAEC\PlcmAEC.inf,GFX.Transform.Install"

[GFXPlcmAECRegister]
11, ,PlcmAEC.dll,1

;
; This section is for the device (see above at [Microsoft])
;
[GFX]
CopyFiles=GFX.CopySys

[GFX.Services]
AddService=PlcmAEC,0x00000002,GFX.ServiceInstall

[GFX.CopySys]
PlcmAEC.sys

[GFX.ServiceInstall]
DisplayName=%GFX.DeviceDesc%
ServiceType=%SERVICE_KERNEL_DRIVER%
StartType=%SERVICE_DEMAND_START%
ErrorControl=%SERVICE_ERROR_NORMAL%
ServiceBinary=%10%\system32\drivers\PlcmAEC.sys

;
; This get called by RunOnce.
;
[GFX.Audio.Install]
AddReg=GFX.Interface.AddReg
AddReg=GFX.Audio.AddReg
AddReg=GFX.AddNames.AddReg
AddReg=GFX.AddParams.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%,"{D07E68FC-5257-1111-963B-9697CB092C90}"
; 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.
;
; For Polycom USB Communicator
HKR,Gfx\AutoLoad\0,Type,%FLG_ADDREG_TYPE_DWORD%,%GFX_TYPE_CAPTURE%
HKR,Gfx\AutoLoad\0,HardwareId,%FLG_ADDREG_TYPE_SZ%,"USB\Vid_095D&Pid_0005&MI_00"
HKR,Gfx\AutoLoad\0,ReferenceString,%FLG_ADDREG_TYPE_SZ%,"Global"
HKR,Gfx\AutoLoad\0,NewAutoLoad,%FLG_ADDREG_TYPE_DWORD_NOCLOBBER%,1

HKR,Gfx\AutoLoad\1,Type,%FLG_ADDREG_TYPE_DWORD%,%GFX_TYPE_RENDER%
HKR,Gfx\AutoLoad\1,HardwareId,%FLG_ADDREG_TYPE_SZ%,"USB\Vid_095D&Pid_0005&MI_00"
HKR,Gfx\AutoLoad\1,ReferenceString,%FLG_ADDREG_TYPE_SZ%,"Global"
HKR,Gfx\AutoLoad\1,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.RenderProcess in Strings section) needs
; to be the same than GUID GFXSAMPLE_NODENAME_CHANNEL_SWAP in file msgfx.h
;
[GFX.AddNames.AddReg]
HKLM,%MediaCategories%\%GFXGUID.RenderProcess%,Name,,%GFXNode.RenderProcess%
HKLM,%MediaCategories%\%GFXGUID.RenderProcess%,Display,1,00,00,00,00

[GFX.AddParams.AddReg]
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "AEC", 0x00010001,1
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "AGC", 0x00010001,1
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "NS", 0x00010001,1
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "DriverReady", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "GobiMonReady", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "DbgLevel", 0x00010001,5
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "AudioJackConfig", 0x00010001,1
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "SpkVol", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "MicVol", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "MicMute", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "EnableStatus", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "AECState", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "AGCGain", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "MicActive", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "FirstTimeRun", 0x00010001,1
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "DefaultMicVol",0x00010001,100
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "DefaultSpkVol",0x00010001,75
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "L0", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "L1", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "L2", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "L3", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "L4", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "R0", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "R1", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "R2", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "R3", 0x00010001,0
HKLM,"System\Currentcontrolset\Services\PlcmAEC\Parameters", "R4", 0x00010001,0

[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 = "{4CD3C03D-AA5C-4d84-9454-3DF8A8715642}"
GFX.Ref = "{6D5FF718-6207-4bf6-A0F5-D83A3A537911}"

GFX_TYPE_RENDER = 0x00000001
GFX_TYPE_CAPTURE = 0x00000002
GFX_TYPE_BOTH = 0x00000003

KSCATEGORY_AUDIO = "{6994AD04-93EF-11D0-A3CC-00A0C9223196}"
KSCATEGORY_DATATRANSFORM = "{2EB07EA0-7E70-11D0-A5D6-28DB04C10000}"
KSCATEGORY_RENDER = "{65E8773E-8F56-11D0-A3B9-00A0C9223196}"
KSCATEGORY_CAPTURE = "{65E8773D-8F56-11D0-A3B9-00A0C9223196}"
Proxy.CLSID = "{17CCA71B-ECD7-11D0-B908-00A0C9223196}"

GFXGUID.RenderProcess = "{204882EF-72A5-446d-82F6-33D29DB31B3F}"

MediaCategories="SYSTEM\CurrentControlSet\Control\MediaCategories"

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
Plcm = "Polycom"
GFX.DeviceDesc = "Polycom Communicator"
GFX.FriendlyName = "Polycom AEC Driver"
GFXNode.RenderProcess = "P"
SOURCE_DISK_NAME="Polycom Communicator AEC driver Installation Disk for WindowXP"

****************endof inf file***********************

Can anyone please suggest solution for this.Is there a need to change the *.inf file, to make it work for other users in winxp.

Thanks in advance,
Manash.


----------

