Prev: 0xc0000142 error with CreateProcessAsUser on XP only with VC 8
Next: CreateFile() returns ERROR_ACCESS_DENIED to the user
From: Kris on 11 Nov 2006 06:13 To detect changes in configuration when Web Cams are added or removed I have up till now used following GUID in combination with RegisterDeviceNotification() : {6BDD1FC6-810F-11D0-BEC7-08002BE2092F} This worked just fine with lots of different webcams. Until yesterday when I encountered one specific brand/type of webcam that did not respond to this GUID. I had a look in the registry and came up with this device class GUID : {65E8773D-8F56-11D0-A3B9-00A0C9223196} Using that one with RegisterDeviceNotification() works perfectly fine and apparently other webcams also respond to this GUID too. Therfore it seems a better idea to use the {65E...} GUID instead of the {6BD..} GUID since apparently more devices respond to the latter GUID. I do have a couple of questions : - Can anyone tell me what the difference is between the {65E...} and the {6BD..} GUID ? - Does anybody know where to find a comprehensive list of all device class GUIDs ? - All the webcams I tested, except the last one, respond both to {6BD..} AND {65E...}. However, the last webcam I tested only respond to {65E...}, but that's not all... Even though I've used RegisterDeviceNotification() to register only once for this GUID I get two notifications for this same {65E...} class. Does anybody know why this is happening ? Any clarification is much appreciated. Thanks, Kris
From: Tim Roberts on 11 Nov 2006 23:46 Kris <Kris(a)discussions.microsoft.com> wrote: > >To detect changes in configuration when Web Cams are added or removed I have >up till now used following GUID in combination with >RegisterDeviceNotification() : >{6BDD1FC6-810F-11D0-BEC7-08002BE2092F} That's GUID_DEVCLASS_IMAGE, the class for still image devices. I'm surprised that any web cams used this. >This worked just fine with lots of different webcams. > >Until yesterday when I encountered one specific brand/type of webcam that >did not respond to this GUID. >I had a look in the registry and came up with this device class GUID : >{65E8773D-8F56-11D0-A3B9-00A0C9223196} That's KSCATEGORY_CAPTURE, the class for audio and video streaming capture devices. >Using that one with RegisterDeviceNotification() works perfectly fine and >apparently other webcams also respond to this GUID too. >Therfore it seems a better idea to use the {65E...} GUID instead of the >{6BD..} GUID since apparently more devices respond to the latter GUID. Yes. You should always use the symbolic constants I just used, instead of the numeric GUIDs. >- Does anybody know where to find a comprehensive list of all device class >GUIDs ? ks.h and ksuuids.h are good starting spots. The DirectShow docs describe some of them; search for the GUID in MSDN. -- Tim Roberts, timr(a)probo.com Providenza & Boekelheide, Inc.
From: Doron Holan [MS] on 11 Nov 2006 23:50 I think you mean device *interface* GUIDs. Device class GUIDs are the pretty category that device is installed under. a device interface GUID is the interface you can use to talk to the device. MSDN says that the 65e... GUID is KSCATEGORY_CAPTURE. there is no way to enumerate all the device itnerfaces. why? b/c you need to know how to use it, so generically finding them doesn't do you any good b/c unless you know which IOCTLs to send, it is not functional. d -- Please do not send e-mail directly to this alias. this alias is for newsgroup purposes only. This posting is provided "AS IS" with no warranties, and confers no rights. "Kris" <Kris(a)discussions.microsoft.com> wrote in message news:5DEC9043-4886-45C5-81FA-664E46F606D5(a)microsoft.com... > To detect changes in configuration when Web Cams are added or removed I > have > up till now used following GUID in combination with > RegisterDeviceNotification() : > {6BDD1FC6-810F-11D0-BEC7-08002BE2092F} > > This worked just fine with lots of different webcams. > > Until yesterday when I encountered one specific brand/type of webcam that > did not respond to this GUID. > I had a look in the registry and came up with this device class GUID : > {65E8773D-8F56-11D0-A3B9-00A0C9223196} > > Using that one with RegisterDeviceNotification() works perfectly fine and > apparently other webcams also respond to this GUID too. > Therfore it seems a better idea to use the {65E...} GUID instead of the > {6BD..} GUID since apparently more devices respond to the latter GUID. > > I do have a couple of questions : > - Can anyone tell me what the difference is between the {65E...} and the > {6BD..} GUID ? > - Does anybody know where to find a comprehensive list of all device class > GUIDs ? > - All the webcams I tested, except the last one, respond both to {6BD..} > AND > {65E...}. However, the last webcam I tested only respond to {65E...}, but > that's not all... Even though I've used RegisterDeviceNotification() to > register only once for this GUID I get two notifications for this same > {65E...} class. Does anybody know why this is happening ? > > Any clarification is much appreciated. > > Thanks, > > Kris
From: Pavel A. on 12 Nov 2006 11:01 "Kris" wrote: > - Does anybody know where to find a comprehensive list of all device class > GUIDs ? AFAIK there is no single .h file in WDK or PSDK that lists all devinterfaces. The interfaces are usually defined in same .h files that define the interface itself, such as ks.h. > Even though I've used RegisterDeviceNotification() to > register only once for this GUID I get two notifications for this same > {65E...} class. Does anybody know why this is happening ? Various events may occur on the dev. interfaces; probably you are revceivng different events. Regards, --PA
From: Kris on 12 Nov 2006 14:01
"Tim Roberts" wrote : > That's GUID_DEVCLASS_IMAGE, the class for still image devices. > I'm surprised that any web cams used this. "Doron Holan [MS]" wrote : > I think you mean device *interface* GUIDs. When I do a search through all the DDK files I find the definition of the GUID_DEVINTERFACE_IMAGE. But apparently, the GUID_DEVCLASS_IMAGE and GUID_DEVINTERFACE_IMAGE in this case are identical. I've searched the DDK for all GUID_DEVINTERFACE occurences, but couldn't find on that really matched with a webcam device. Except for the GUID_DEVINTERFACE_IMAGE, but that one did not work with at least 1 type of webcam. Even though this GUID is for still image devices, a web cam is also capable of taking stills, so that GUID would have been ok in my opinion. For now I use the KSCATEGORY_CAPTURE to get notification of web cam events. But I'm wondering if this is the most appropriate GUID since this is the class for audio and video streaming capture devices (and I guess e.g. a microphone will also use this GUID) ? |