The SetupDiGetClassDevs function returns a device information set that contains all devices of a specified class.
HDEVINFO
SetupDiGetClassDevs(
IN LPGUID ClassGuid, OPTIONAL
IN PCTSTR Enumerator, OPTIONAL
IN HWND hwndParent, OPTIONAL
IN DWORD Flags
);
If the DIGCF_ALLCLASSES flag is set, this parameter is ignored and the resulting list contains devices of all installed classes.
If the DIGCF_DEVICEINTERFACE flag is set, this parameter optionally points to a string representing the PnP name of a particular device. This function only examines this particular device to determine whether it exposes any interfaces of the requested interface class.
If the DIGCF_DEVICEINTERFACE flag is not set, this parameter optionally specifies the name of the PnP enumerator that enumerates the devices of interest. (The names of system-supplied enumerators appear in register.h.) This function only examines device instances of this enumerator. If this parameter is NULL, this function retrieves device information for all device instances on the system.
SetupDiGetClassDevs returns a handle to a device information set containing all installed devices matching the specified parameters. If the function fails, it returns INVALID_HANDLE_VALUE or another appropriate error. To get extended error information, call GetLastError.
Declared in setupapi.h. Include setupapi.h.
The caller of this function must delete the returned device information set when it is no longer needed by calling SetupDiDestroyDeviceInfoList.
If DIGCF_DEVICEINTERFACE is set, ClassGuid (if used) must point to a device interface class GUID and Enumerator (if used) must point to a PnP device name. The returned device information set contains devices that expose interfaces of the requested interface class. Enumerate the interfaces of the devices using SetupDiEnumDeviceInterfaces.
If DIGCF_DEVICEINTERFACE is not set, ClassGuid (if used) must point to a setup class GUID and Enumerator (if used) must specify the name of the PnP enumerator that enumerates the devices of interest.
Call SetupDiGetClassDevsEx to retrieve the devices for a class on a remote machine.
SetupDiCreateDeviceInfoList, SetupDiDestroyDeviceInfoList, SetupDiEnumDeviceInterfaces, SetupDiGetClassDevsEx