CM_Get_Next_Res_Des function

The CM_Get_Next_Res_Des function obtains a handle to the next resource descriptor, of a specified resource type, for a logical configuration on the local machine.


WINAPI CM_Get_Next_Res_Des(
  _Out_     PRES_DES    prdResDes,
  _In_      RES_DES     rdResDes,
  _In_      RESOURCEID  ForResource,
  _Out_opt_ PRESOURCEID pResourceID,
  _In_      ULONG       ulFlags


prdResDes [out]

Pointer to a location to receive a resource descriptor handle.

rdResDes [in]

Caller-supplied handle to either a resource descriptor or a logical configuration. For more information, see the following Remarks section.

ForResource [in]

Caller-supplied resource type identifier, indicating the type of resource descriptor being requested. This must be one of the ResType_-prefixed constants defined in Cfgmgr32.h.

pResourceID [out, optional]

Pointer to a location to receive a resource type identifier, if ForResource specifies ResType_All. For any other ForResource value, callers should set this to NULL.

ulFlags [in]

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.

Note  Starting with Windows 8, CM_Get_Next_Res_Des returns CR_CALL_NOT_IMPLEMENTED when used in a Wow64 scenario. To request information about the hardware resources on a local machine it is necessary implement an architecture-native version of the application using the hardware resource APIs. For example: An AMD64 application for AMD64 systems.


To enumerate a logical configuration's resource descriptors, begin by calling CM_Get_Next_Res_Des with the logical configuration's handle as the argument for rdResDes. This obtains a handle to the first resource descriptor of the type specified by ForResource. Then for each subsequent call to CM_Get_Next_Res_Des, specify the most recently obtained descriptor handle as the argument for rdResDes. Repeat until the function returns CR_NO_MORE_RES_DES.

To retrieve the information stored in a resource descriptor, call CM_Get_Res_Des_Data.

To modify the information stored in a resource descriptor, call CM_Modify_Res_Des.

Callers of CM_Get_Next_Res_Des must call CM_Free_Res_Des_Handle to deallocate the resource descriptor handle, after it is no longer needed.


Target platform



Available in Microsoft Windows 2000 and later versions of Windows.


Cfgmgr32.h (include Cfgmgr32.h)





See also




Send comments about this topic to Microsoft