Platform SDK: Hardware

SetupDiGetClassDevs

The SetupDiGetClassDevs function retrieves a device information set that contains all devices of a specified class.

To retrieve a device information set for devices on a remote computer, call the SetupDiGetClassDevsEx function.

HDEVINFO SetupDiGetClassDevs(
  CONST LPGUID ClassGuid, 
  PCTSTR Enumerator, 
  HWND hwndParent, 
  DWORD Flags
);

Parameters

ClassGuid
[in] An optional pointer to a class GUID for a setup class or an interface class. If the DIGCF_DEVICEINTERFACE flag is set, ClassGuid represents an interface class; otherwise, ClassGuid represents a setup class.

If the DIGCF_ALLCLASSES flag is set, this parameter is ignored and the resulting list contains devices of all installed classes.

Enumerator
[in] An optional pointer to a string that filters the devices that are returned.

If the DIGCF_DEVICEINTERFACE flag is set, this parameter is an optional pointer to a string representing the PnP name of a particular device. This function examines this particular device only 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 for the devices of interest. (The names of system-supplied enumerators appear in the DDK header file Register.h.) This function examines only device instances of this enumerator. If this parameter is NULL, this function retrieves device information for all device instances on the system.

hwndParent
[in] Specifies the handle to the top-level window to be used for any user interface relating to the members of this set.
Flags
[in] Specifies control options used in building the device information set. This parameter can be one or more of the following values.
Value Meaning
DIGCF_ALLCLASSES Return a list of installed devices for all classes. If this flag is set, the ClassGuid parameter is ignored.
DIGCF_DEVICEINTERFACE Return devices that expose interfaces of the interface class specified by ClassGuid. If this flag is not set, ClassGuid specifies a setup class.
DIGCF_PRESENT Return only devices that are currently present.
DIGCF_PROFILE Return only devices that are a part of the current hardware profile.

Return Values

If the function succeeds, the return value is a handle to a device information set containing all installed devices matching the specified parameters.

If the function fails, the return value is INVALID_HANDLE_VALUE. To get extended error information, call GetLastError.

Remarks

To destroy the device information set when you have finished, call the SetupDiDestroyDeviceInfoList function.

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 device information set returned contains devices that expose interfaces of the requested interface class. Enumerate the interfaces of the devices using the SetupDiEnumDeviceInterfaces function.

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.

To retrieve the devices for a class on a remote computer, call the SetupDiGetClassDevsEx function.

Requirements

  Windows NT/2000: Requires Windows 2000.
  Windows 95/98: Requires Windows 98.
  Header: Declared in Setupapi.h.
  Library: Use Setupapi.lib.

See Also

Device Management Overview, Device Management Functions, SetupDiDestroyDeviceInfoList, SetupDiEnumDeviceInterfaces, SetupDiGetClassDevsEx