How can I change icon in Device Manager?

Hi,

I want to change icon for my camera in Device Manager. I don’t want to create a new class with new guid, just underlying the image class. Is it possible? (I have been tested it with Toaster. It’s work. Unfortunately, I just want to change my owned device, not whole class icon.)

If somebody can explain how to achieve it. That’s great.

Many Thanks,
Jason

xxxxx@hotmail.com wrote:

Hi,

I want to change icon for my camera in Device Manager. I don’t want to create a new class with new guid, just underlying the image class. Is it possible? (I have been tested it with Toaster. It’s work. Unfortunately, I just want to change my owned device, not whole class icon.)

If somebody can explain how to achieve it. That’s great.

No can do. The Device Manager icon is associated with a class, not with
individual drivers.

Why do you care about this? The purpose of the icon is to provide cues
to the user, not to provide yet another opportunity for branding.
Cameras should all look like cameras.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,
Thanks for your reply. I ever seen a document on “http://www.microsoft.com/whdc/driver/install/customicon.mspx” which shows how to customize personal icon in device manager. But still can’t change the icon in that manner.

xxxxx@hotmail.com wrote:

Thanks for your reply. I ever seen a document on “http://www.microsoft.com/whdc/driver/install/customicon.mspx” which shows how to customize personal icon in device manager. But still can’t change the icon in that manner.

Are you running Vista? As the document says, this technique only works
on Vista. Prior to Vista, you can only change the class icon.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Yes, I am working on Vista. So far I only can change icon for whole class. Base on that document, I expect that it can apply to each device. Unfortunately, it can’t change icon for my device at all.

Jason

xxxxx@hotmail.com wrote:

Yes, I am working on Vista. So far I only can change icon for whole class. Base on that document, I expect that it can apply to each device. Unfortunately, it can’t change icon for my device at all.

Show us your INF file.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

[Version]
LayoutFile=Layout.inf, Layout1.inf, Layout2.inf
signature=“$CHICAGO$”
Class=Image
ClassGUID={6bdd1fc6-810f-11d0-bec7-08002be2092f}
Provider=%PVD%
CatalogFile=Pocv.cat
DriverVer=11/24/2008, 1.0.0.1

[Manufacturer]
%EasyMfg%=EasyCompany,nt,nt.6.0

[EasyCompany]
%PID_09A7_DD%=PID_09A7,USB\VID_04f3&PID_09A7&Mi_00

[EasyCompany.NT]
%PID_09A7_DD%=PID_09A7.XP,USB\VID_04f3&PID_09A7&Mi_00

[EasyCompany.NT.6.0]
%PID_09A7_DD%=PID_09A7.VISTA,USB\VID_04f3&PID_09A7&Mi_00

[SourceDisksNames]
1=%DISK_NAME%,

[SourceDisksFiles]
vmcodec2.dll=1
vmcoinst.dll=1
vmcoinst.ini=1
vmWIAext.dll=1
vmuvc.sys=1

[DestinationDirs]
DefaultDestDir=11 ; system
DelDrivers=11
MISC.CopyFiles=10,TWAIN_32\QQWIA ; Twain
VMfWWDM32.DelFile=10 ; delete on Windows upgrade
CopyCoInstaller=11
CopyUserDrv=11
CopyUserDrvNT=11
VMUVC.CopyDrivers=10,system32\drivers
MSVCR.OS.Files=10,system32

[ControlFlags]
ExcludeFromSelect=*

[PID_09A7]
Include= ks.inf, kscaptur.inf, ksfilter.inf
Needs= KS.Registration,KSCAPTUR.Registration
AddReg= PID_09A7.AddReg, VFW.AddReg, Common.AddReg,LTopologyNodeRegistration, SELSUSDisable.AddReg
DelFiles= DelDrivers, VMfWWDM32.DelFile
CopyFiles= VMUVC.CopyDrivers, MSVCR.OS.Files,MISC.CopyFiles, CopyUserDrv, CopyCoInstaller
DelReg= Win95.DelReg
UpdateInis= Win95.UpdateIni, fWWDM.UpdateIni
VendorSetup=%vmcoinst32%,SetupEntryPoint PID_09A7
SubClass=StillImage
DeviceType=3
DeviceSubType=0x1
Capabilities=0x31
ICMProfiles=%ICM_Prfl%
DriverVer=11/24/2008, 1.0.0.1

[PID_09A7.NT]
Include= ks.inf, kscaptur.inf, ksfilter.inf, dshowext.inf
Needs= KS.Registration,KSCAPTUR.Registration.NT, DSHOWEXT.Registration
AddReg= PID_09A7.AddReg, VFW.AddReg.NT, Common.AddReg,LTopologyNodeRegistration, SELSUSDisable.AddReg
CopyFiles= VMUVC.CopyDrivers, MSVCR.OS.Files,MISC.CopyFiles, CopyUserDrvNT
DriverVer=11/24/2008, 1.0.0.1

[PID_09A7.NT.HW]

[PID_09A7.XP]
Include= ks.inf, kscaptur.inf, ksfilter.inf, dshowext.inf
Needs= KS.Registration,KSCAPTUR.Registration.NT, DSHOWEXT.Registration
AddReg= PID_09A7.AddReg, VFW.AddReg.NT, Common.AddReg,LTopologyNodeRegistration, SELSUSDisable.AddReg
CopyFiles= VMUVC.CopyDrivers, MSVCR.OS.Files,MISC.CopyFiles, CopyUserDrvNT
SubClass=StillImage
DeviceType=3
DeviceSubType=0x1
Capabilities=0x31
ICMProfiles=%ICM_Prfl%
DriverVer=11/24/2008, 1.0.0.1

[PID_09A7.XP.HW]

[PID_09A7.VISTA]
Include= ks.inf, kscaptur.inf
Needs= KS.Registration,KSCAPTUR.Registration.NT
AddReg= PID_09A7.AddReg, VFW.AddReg.NT, Common.AddReg,LTopologyNodeRegistration, SELSUSDisable.AddReg
CopyFiles= VMUVC.CopyDrivers, MSVCR.OS.Files,MISC.CopyFiles, CopyUserDrvNT
AddProperty= DeviceManager.Icon
SubClass=StillImage
DeviceType=3
DeviceSubType=0x1
Capabilities=0x31
ICMProfiles=%ICM_Prfl%
DriverVer=11/24/2008, 1.0.0.1

[PID_09A7.VISTA.HW]

[PID_09A7.NT.CoInstallers]
CopyFiles=CopyCoInstaller
AddReg=CoInstaller.AddReg

[PID_09A7.XP.CoInstallers]
CopyFiles=CopyCoInstaller
AddReg=CoInstaller.AddReg

[PID_09A7.VISTA.CoInstallers]
CopyFiles=CopyCoInstaller
AddReg=CoInstaller.AddReg

[PID_09A7.NT.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT
AddInterface=%KSCATEGORY_VIDEO%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT

[PID_09A7.XP.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT
AddInterface=%KSCATEGORY_VIDEO%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT

[PID_09A7.VISTA.Interfaces]
AddInterface=%KSCATEGORY_CAPTURE%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT
AddInterface=%KSCATEGORY_VIDEO%,%UVC_CAP_FILTER%,PID_09A7.Interface.NT

[PID_09A7.Interface.NT]
AddReg=PID_09A7.Intf.AddReg.NT

[PID_09A7.Intf.AddReg.NT]
HKR,CLSID,%ProxyVCap.CLSID%
HKR,FriendlyName,%PID_09A7_DD%
HKR,ExtensionDLL,%ExtensionDLL%
HKR,PageAliases,“{71F96464-78F3-11d0-A18C-00A0C9118956}”,1,21,E8,C2,3D, 13,47, d2,11, 0xba, 0x41, 0x0, 0xa0, 0xc9, 0xd, 0x2b, 0x5
HKR,PinFactory\1\Interfaces{5BB95400-52BB-11d2-BA41-00A0C90D2B05}
HKR,RTCFlags,0x00010001,0x00000010

[PID_09A7.NT.Services]
AddService = UVC,0x00000002,PID_09A7.ServiceInstall

[PID_09A7.XP.Services]
AddService = UVC,0x00000002,PID_09A7.ServiceInstall

[PID_09A7.VISTA.Services]
AddService = UVC,0x00000002,PID_09A7.ServiceInstall

[PID_09A7.ServiceInstall]
DisplayName = %PID_09A7_DD%(UVC)
ServiceType = %SERVICE_KERNEL_DRIVER%
StartType = %SERVICE_DEMAND_START%
ErrorControl = %SERVICE_ERROR_NORMAL%
ServiceBinary = %12%\vmuvc.sys

[PID_09A7.AddReg]
HKR,DevLoader,*ntkern
HKR,NTMPDriver,vmuvc.sys
HKR,PageOutWhenUnopened,3,00
HKR,Settings,“PTZEnable”,0x00010001,1
HKR,Settings,“UseSVF”,0x00010001,1
HKR,Settings,“UseFEL”,0x00010001,1
HKR,Settings,“MechPT”,0x00010001,0
HKR,Settings,“TrackType”,0x00010001,0
HKR,FriendlyName,%PID_09A7_DD%
HKLM,“%KEY_CONFERENCING%%PID_09A7_DD%”,dwImageSize,0x1,00,05,40,06
HKLM,“%KEY_CONFERENCING%%PID_09A7_DD%”,dwStreamingMode,0x1,01,00,00,00
HKLM,“%KEY_CONFERENCING%%PID_09A7_DD%”,dwDialogs,0x1,02,00,00,00
HKLM,“%KEY_CONFERENCING%%PID_09A7_DD%”,dwNumColors,0x1,28,00,00,00

[VMUVC.CopyDrivers]
vmuvc.sys

[SELSUSDisable.AddReg]
HKR,PowSaveDisable,0x10001,0x1
HKR,SSDisable,0x00010001,0x1
HKR,SelSusInterfaceGUID,“{FA33C4CD-7C6D-4a5d-8AD4-CFB86D02AE9E}”

[CoInstaller.AddReg]
HKR,CoInstallers32,0x00010000,“%vmcoinst32%,CoInstaller”

[DeviceManager.Icon]
DeviceIcon,“%SystemRoot%\system32\vmcoinst.dll,-101”

[Common.AddReg]
HKR,HardwareConfig,1,1
HKR,USDClass,“{0527d1d0-88c2-11d2-82c7-00c04f8ec183}”
HKR,OkToHibernate,3,01

[Win95.DelReg]
HKLM,“System\CurrentControlSet\Control\MediaResources\msvideo\msvideo.lvfw”
HKLM,“System\CurrentControlSet\Control\MediaResources\msvideo\msvideo.LP35”

[VFW.AddReg.NT]
HKLM,%QQ_DRVS%,“OEM”,%PVD%
HKLM,%QQ_DRVS%,“VFW”,%fWWDMDriverDesc%
HKLM,%MMDrivers%,MSVideo,vfwwdm32.dll

[Win95.UpdateIni]
system.ini,drivers,“msvideo.lvfw=*”
system.ini,drivers,“MSVideo.LP35=*”

[fWWDM.UpdateIni]
system.ini,drivers,“MSVideo.VfWWDM=vfwwdm.drv”

[VMfWWDM32.DelFile]
vfwwdm32.dll

[DelDrivers]
ks.sys,1
stream.sys,1
imagecls.sys,1

[CopyUserDrv]
vmcodec2.dll ; Don’t replace if older

[CopyUserDrvNT]
vmcodec2.dll

[MISC.CopyFiles]
vmWIAext.dll

[CopyCoInstaller]
vmcoinst.dll
vmcoinst.ini

[MSVCR.OS.Files]

[LTopologyNodeRegistration]
HKLM,%MediaCategories%%GUID.VideoStreaming%,Name,%Node.VideoStreaming%
HKLM,%MediaCategories%%GUID.VideoStreaming%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoInputTerminal%,Name,%Node.VideoInputTerminal%
HKLM,%MediaCategories%%GUID.VideoInputTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoOutputTerminal%,Name,%Node.VideoOutputTerminal%
HKLM,%MediaCategories%%GUID.VideoOutputTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoSelector%,Name,%Node.VideoSelector%
HKLM,%MediaCategories%%GUID.VideoSelector%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoProcessing%,Name,%Node.VideoProcessing%
HKLM,%MediaCategories%%GUID.VideoProcessing%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoCameraTerminal%,Name,%Node.VideoCameraTerminal%
HKLM,%MediaCategories%%GUID.VideoCameraTerminal%,Display,1,00,00,00,00
HKLM,%MediaCategories%%GUID.VideoExtensionUnit%,Name,%Node.VideoExtensionUnit%
HKLM,%MediaCategories%%GUID.VideoExtensionUnit%,Display,1,00,00,00,00

[Uninstall]
DelFiles = VMUVC.CopyDrivers,MISC.CopyFiles,CopyUserDrvNT,CopyCoInstaller,CopyUserDrv
DelReg = pid_09a7.addreg,vfw.addreg.nt,ltopologynoderegistration

[Strings]
ProxyVCap.CLSID=“{17CCA71B-ECD7-11D0-B908-00A0C9223196}”
KSCATEGORY_CAPTURE=“{65E8773D-8F56-11D0-A3B9-00A0C9223196}”
KSCATEGORY_VIDEO=“{6994AD05-93EF-11D0-A3CC-00A0C9223196}”
SERVICE_KERNEL_DRIVER=1
SERVICE_DEMAND_START=3
SERVICE_ERROR_NORMAL=1
MMDrivers=“Software\Microsoft\Windows NT\CurrentVersion\Drivers32”
MedSets=“SYSTEM\CurrentControlSet\Control\MediaSets”
ICM_Prfl=“sRGB Color Space Profile.icm”
QQ_DRVS=“Software\EasyCompany\QQ\Drivers”
MediaCategories=“SYSTEM\CurrentControlSet\Control\MediaCategories”
GUID.VideoStreaming=“{DFF229E1-F70F-11D0-B917-00A0C9223196}”
GUID.VideoInputTerminal=“{DFF229E2-F70F-11D0-B917-00A0C9223196}”
GUID.VideoOutputTerminal=“{DFF229E3-F70F-11D0-B917-00A0C9223196}”
GUID.VideoSelector=“{DFF229E4-F70F-11D0-B917-00A0C9223196}”
GUID.VideoProcessing=“{DFF229E5-F70F-11D0-B917-00A0C9223196}”
GUID.VideoCameraTerminal=“{DFF229E6-F70F-11D0-B917-00A0C9223196}”
GUID.VideoExtensionUnit=“{DFF229F0-F70F-11D0-B917-00A0C9223196}”
PVD=“EasyCompany”
EasyMfg=“EasyCompany”
DISK_NAME=“USB Video Camera Disk”
PID_09A7_DD=“EasyCamera”
fWWDMDriverDesc=“USB Video Camera”
UVC_CAP_FILTER = “{BBEFB6C7-2FC4-4139-BB8B-A58BBA724083}”
Node.VideoStreaming=“Video Streaming”
Node.VideoInputTerminal=“Video Input Terminal”
Node.VideoOutputTerminal=“Video Output Terminal”
Node.VideoSelector=“Video Selector”
Node.VideoProcessing=“Video Processing Unit”
Node.VideoCameraTerminal=“Video Camera Terminal”
Node.VideoExtensionUnit=“Video Extension Unit”
KEY_CONFERENCING=“Software\Microsoft\Conferencing\CaptureDevices”
vmcoinst32=“vmcoinst.dll”

[Strings.0411]
PVD=“EasyCompany”
EasyMfg=“EasyCompany”
DISK_NAME=“USB Video Camera Disk”
PID_09A7_DD=“EasyCamera”
fWWDMDriverDesc=“USB Video Camera”
vmcoinst32=“vmcoinst.dll”
ProxyVCap.CLSID=“{17CCA71B-ECD7-11D0-B908-00A0C9223196}”
KSCATEGORY_CAPTURE=“{65E8773D-8F56-11D0-A3B9-00A0C9223196}”
KSCATEGORY_VIDEO=“{6994AD05-93EF-11D0-A3CC-00A0C9223196}”
SERVICE_KERNEL_DRIVER=1
SERVICE_DEMAND_START=3
SERVICE_ERROR_NORMAL=1
MMDrivers=“Software\Microsoft\Windows NT\CurrentVersion\Drivers32”
MedSets=“SYSTEM\CurrentControlSet\Control\MediaSets”
ICM_Prfl=“sRGB Color Space Profile.icm”
QQ_DRVS=“Software\EasyCompany\QQ\Drivers”
MediaCategories=“SYSTEM\CurrentControlSet\Control\MediaCategories”
GUID.VideoStreaming=“{DFF229E1-F70F-11D0-B917-00A0C9223196}”
GUID.VideoInputTerminal=“{DFF229E2-F70F-11D0-B917-00A0C9223196}”
GUID.VideoOutputTerminal=“{DFF229E3-F70F-11D0-B917-00A0C9223196}”
GUID.VideoSelector=“{DFF229E4-F70F-11D0-B917-00A0C9223196}”
GUID.VideoProcessing=“{DFF229E5-F70F-11D0-B917-00A0C9223196}”
GUID.VideoCameraTerminal=“{DFF229E6-F70F-11D0-B917-00A0C9223196}”
GUID.VideoExtensionUnit=“{DFF229F0-F70F-11D0-B917-00A0C9223196}”
UVC_CAP_FILTER = “{BBEFB6C7-2FC4-4139-BB8B-A58BBA724083}”
Node.VideoStreaming=“Video Streaming”
Node.VideoInputTerminal=“Video Input Terminal”
Node.VideoOutputTerminal=“Video Output Terminal”
Node.VideoSelector=“Video Selector”
Node.VideoProcessing=“Video Processing Unit”
Node.VideoCameraTerminal=“Video Camera Terminal”
Node.VideoExtensionUnit=“Video Extension Unit”
KEY_CONFERENCING=“Software\Microsoft\Conferencing\CaptureDevices”

xxxxx@hotmail.com wrote:

[Manufacturer]
%EasyMfg%=EasyCompany,nt,nt.6.0

[EasyCompany]
%PID_09A7_DD%=PID_09A7,USB\VID_04f3&PID_09A7&Mi_00

[EasyCompany.NT]
%PID_09A7_DD%=PID_09A7.XP,USB\VID_04f3&PID_09A7&Mi_00

[EasyCompany.NT.6.0]
%PID_09A7_DD%=PID_09A7.VISTA,USB\VID_04f3&PID_09A7&Mi_00

It’s not necessary to use a separate section for Vista. As the white
paper clearly states, the AddProperty directive is ignore by XP, so you
can use one section for both systems.

How are you testing this? Are you trying this on a system that had
previous instances of the device using an older INF? The operating
system is very stubborn about using previous driver installs, if it can
find them. Have you tried this on a clean system? I don’t see anything
immediately wrong with your INF file.

The “UVC” implies that you comply with USB Video Class. If so, why are
you using your own driver, instead of usbvideo.sys? Remember that, as
of July 1, 2008, a USB camera cannot get the Vista logo unless it uses
usbvideo.sys.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.

Hi Tim,
Thanks for your reply. I am trying to test it on pure Vista system. But it still couldn’t change the icon. I think there must something I don’t know.

UVC… Yes, I need our own driver because of there are many XUs in our deivce. As I know Microsoft doesn’t restrict vendor only can use their driver instead of customized driver.

xxxxx@hotmail.com wrote:

Hi Tim,
Thanks for your reply. I am trying to test it on pure Vista system. But it still couldn’t change the icon. I think there must something I don’t know.

UVC… Yes, I need our own driver because of there are many XUs in our deivce. As I know Microsoft doesn’t restrict vendor only can use their driver instead of customized driver.

You are allowed to use your own driver, but if you want the Vista logo,
your device *MUST* operate correctly when using usbvideo.sys instead of
your custom driver. The DTM tests will uninstall your driver, then
install usbvideo.sys, then verify that everything still works.


Tim Roberts, xxxxx@probo.com
Providenza & Boekelheide, Inc.