CM_Get_Device_IDW function (cfgmgr32.h)

The CM_Get_Device_ID function retrieves the device instance ID for a specified device instance on the local machine.


In Windows Vista and later versions of Windows, the unified device property model uses the DEVPKEY_Device_InstanceId property key to represent the device instance identifier. See Retrieving a Device Instance Identifier for details.


  [in]  DEVINST dnDevInst,
  [out] PWSTR   Buffer,
  [in]  ULONG   BufferLen,
  [in]  ULONG   ulFlags


[in] dnDevInst

Caller-supplied device instance handle that is bound to the local machine.

[out] Buffer

Address of a buffer to receive a device instance ID string. The required buffer size can be obtained by calling CM_Get_Device_ID_Size, then incrementing the received value to allow room for the string's terminating NULL.

[in] BufferLen

Caller-supplied length, in characters, of the buffer specified by Buffer.

[in] ulFlags

Not used, must be zero.

Return value

If the operation succeeds, the function returns CR_SUCCESS. Otherwise, it returns one of the CR_-prefixed error codes defined in Cfgmgr32.h.


The function appends a NULL terminator to the supplied device instance ID string, unless the buffer is too small to hold the string. In this case, the function supplies as much of the identifier string as will fit into the buffer, and then returns CR_BUFFER_SMALL.

For information about device instance IDs, see Device Identification Strings.

For information about using device instance handles that are bound to the local machine, see CM_Get_Child.


Requirement Value
Minimum supported client Available in Microsoft Windows 2000 and later versions of Windows.
Target Platform Universal
Header cfgmgr32.h (include Cfgmgr32.h)
Library Cfgmgr32.lib

See also