diff --git a/reactos/dll/win32/cfgmgr32/cfgmgr32.def b/reactos/dll/win32/cfgmgr32/cfgmgr32.def index dbd23bfc5dc..a3bd0fed293 100644 --- a/reactos/dll/win32/cfgmgr32/cfgmgr32.def +++ b/reactos/dll/win32/cfgmgr32/cfgmgr32.def @@ -64,7 +64,7 @@ CM_Enumerate_Enumerators_ExW@20=SETUPAPI.CM_Enumerate_Enumerators_ExW ;CM_First_Range ;CM_Free_Log_Conf ;CM_Free_Log_Conf_Ex -;CM_Free_Log_Conf_Handle +CM_Free_Log_Conf_Handle@4=SETUPAPI.CM_Free_Log_Conf_Handle ;CM_Free_Range_List ;CM_Free_Res_Des ;CM_Free_Res_Des_Ex diff --git a/reactos/dll/win32/setupapi/cfgmgr.c b/reactos/dll/win32/setupapi/cfgmgr.c index 45d3c474568..f4e2f05c31a 100644 --- a/reactos/dll/win32/setupapi/cfgmgr.c +++ b/reactos/dll/win32/setupapi/cfgmgr.c @@ -918,6 +918,26 @@ CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW( } +/*********************************************************************** + * CM_Free_Log_Conf_Handle [SETUPAPI.@] + */ +CONFIGRET WINAPI CM_Free_Log_Conf_Handle( + LOG_CONF lcLogConf) +{ + PLOG_CONF_INFO pLogConfInfo; + + TRACE("%lx\n", lcLogConf); + + pLogConfInfo = (PLOG_CONF_INFO)lcLogConf; + if (pLogConfInfo == NULL || pLogConfInfo->ulMagic != LOG_CONF_MAGIC) + return CR_INVALID_LOG_CONF; + + HeapFree(GetProcessHeap(), 0, pLogConfInfo); + + return CR_SUCCESS; +} + + /*********************************************************************** * CM_Get_Child [SETUPAPI.@] */ diff --git a/reactos/dll/win32/setupapi/setupapi.spec b/reactos/dll/win32/setupapi/setupapi.spec index 829364e4cb4..639089bc1a0 100644 --- a/reactos/dll/win32/setupapi/setupapi.spec +++ b/reactos/dll/win32/setupapi/setupapi.spec @@ -48,7 +48,7 @@ @ stub CM_First_Range @ stub CM_Free_Log_Conf @ stub CM_Free_Log_Conf_Ex -@ stub CM_Free_Log_Conf_Handle +@ stdcall CM_Free_Log_Conf_Handle(ptr) @ stub CM_Free_Range_List @ stub CM_Free_Res_Des @ stub CM_Free_Res_Des_Ex diff --git a/reactos/include/reactos/wine/cfgmgr32.h b/reactos/include/reactos/wine/cfgmgr32.h index 507356eedd7..94113c9d0bf 100644 --- a/reactos/include/reactos/wine/cfgmgr32.h +++ b/reactos/include/reactos/wine/cfgmgr32.h @@ -50,6 +50,7 @@ DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID) #define CR_INVALID_FLAG 0x00000004 #define CR_INVALID_DEVNODE 0x00000005 #define CR_INVALID_DEVINST CR_INVALID_DEVNODE +#define CR_INVALID_LOG_CONF 0x00000007 #define CR_NO_SUCH_DEVNODE 0x0000000D #define CR_NO_SUCH_DEVINST CR_NO_SUCH_DEVNODE #define CR_FAILURE 0x00000013 @@ -249,6 +250,7 @@ CONFIGRET WINAPI CM_Enumerate_EnumeratorsW( ULONG, PWCHAR, PULONG, ULONG ); CONFIGRET WINAPI CM_Enumerate_Enumerators_ExA( ULONG, PCHAR, PULONG, ULONG, HMACHINE ); CONFIGRET WINAPI CM_Enumerate_Enumerators_ExW( ULONG, PWCHAR, PULONG, ULONG, HMACHINE ); #define CM_Enumerate_Enumerators_Ex WINELIB_NAME_AW(CM_Enumerate_Enumerators_Ex) +CONFIGRET WINAPI CM_Free_Log_Conf_Handle( LOG_CONF ); CONFIGRET WINAPI CM_Get_Child( PDEVINST, DEVINST, ULONG ); CONFIGRET WINAPI CM_Get_Child_Ex( PDEVINST, DEVINST, ULONG, HMACHINE ); CONFIGRET WINAPI CM_Get_Class_Key_NameA( LPGUID, LPSTR, PULONG, ULONG );