Discovering all connected 1394 devices?

Hello Everyone,

I understand how to enumerate 1394 devices based on GUIDs with the SetupDi
functions, but how do I go about finding ALL 1394 nodes reguardless of
GUIDs? There must be some other way of finding nodes other than SetupDi,
yes? Perhaps a low level way?

Background: I am working on a utility to upload new firmware to a 1394
device that doesn’t show up as any particular GUID that I can find, not
even UNKNOWN. However, a 3rd-party uploader works just fine, so I know
there’s a way to get to it. I’ve montitored the registry with
Sysinternal’s Regmon and observed that there is no registry keys being set
when I turn on the device, so that may explain why I’m getting nowhere
with SetupDi (as I understand it just accesses the registry).

Any help or pointers would be much appreciated.

Thank you!
Brian

You can try SetupDiGetClassDevs() with DIGCF_ALLCLASSES flag set.
You can then enumerate all device nodes regardless of GUIDs.

Best Regards
Jack Huang

“Brian Chapman” …
Hello Everyone,

I understand how to enumerate 1394 devices based on GUIDs with the SetupDi
functions, but how do I go about finding ALL 1394 nodes reguardless of
GUIDs? There must be some other way of finding nodes other than SetupDi,
yes? Perhaps a low level way?

Background: I am working on a utility to upload new firmware to a 1394
device that doesn’t show up as any particular GUID that I can find, not
even UNKNOWN. However, a 3rd-party uploader works just fine, so I know
there’s a way to get to it. I’ve montitored the registry with
Sysinternal’s Regmon and observed that there is no registry keys being set
when I turn on the device, so that may explain why I’m getting nowhere
with SetupDi (as I understand it just accesses the registry).

Any help or pointers would be much appreciated.

Thank you!
Brian

You can have the 1394 bus driver load a kernel driver virtually using the IOCTL_IEEE1394_API_REQUEST request. And once your driver is loaded you can parse the 1394 topology map yourself using REQUEST_GET_LOCAL_HOST_INFO. The WDK contains a sample on how to do this in the Win1394 application.

Good luck,
Kashif Hasan