From: Kris on
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
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
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
"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
"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) ?