At 06.13 19/10/2004, you wrote:
Which setupapi functions are needed for this hack?
Right now its a hardcoded hack to SetupDiGetClassDevsA that looks for the iPods Vendor ID by talking to the /proc filesystem.
I've heard about the PnP support in the newest Linux versions. Their HAL sounds a lot like our PnP Service. Maybe the Wine people should rather have a look at that - I doubt direct access can be made portable enough (save for some special cases - e.g. SCSI)
I was hoping we could make it generic enough that ReactOS and Wine could both use the same code for device identification at least on the userspace side because if I understand it correctly all USB devices under any OS use the same ID system. I dont know how the other hardware such as PCI and friends work.
it depends (but in general it's some variation of the vendor id/device id scheme). In fact, Windows has several enumerators, one per bus, each supporting a different kind of device enumeration and identifications (FYI, PCI devices have a vendor id, a device id, a subsystem vendor id, a subsystem device id and a revision id), plus a root enumerator that implements a default behavior (the identifier is a GUID) that should be good enough for everything else (if not, you write your own enumerator). You generally don't use these identifiers directly, anyway