CM_Free_Res_Des function (cfgmgr32.h)

The CM_Free_Res_Des function removes a resource descriptor from a logical configuration on the local machine.


  [out] PRES_DES prdResDes,
  [in]  RES_DES  rdResDes,
  [in]  ULONG    ulFlags


[out] prdResDes

Caller-supplied location to receive a handle to the configuration's previous resource descriptor. This parameter can be NULL. For more information, see the following Remarks section.

[in] rdResDes

Caller-supplied handle to the resource descriptor to be removed. This handle must have been previously obtained by calling one of the following functions:







[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.

Note  Starting with Windows 8, CM_Free_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.


Resource descriptors for each configuration are stored in an array. If you specify an address for prdResDes, then CM_Free_Res_Des returns a handle to the resource descriptor that was previous, in the array, to the one removed. If the handle specified by rdResDes represents the resource descriptor located first in the array, then prdResDes receives a handle to the logical configuration.

Note that calling CM_Free_Res_Des frees the resource descriptor, but not the descriptor's handle. To free the handle, call CM_Free_Res_Des_Handle.

Callers of this function must have SeLoadDriverPrivilege. (Privileges are described in the Microsoft Windows SDK documentation.)


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

See also