Implement CM_Set_HW_Prof_Flags[_Ex]A/W.

svn path=/trunk/; revision=22600
This commit is contained in:
Eric Kohl 2006-06-24 22:57:53 +00:00
parent 78baad6812
commit 92d62b0f19
5 changed files with 162 additions and 10 deletions

View file

@ -195,10 +195,10 @@ CM_Set_DevNode_Registry_Property_ExA@24=SETUPAPI.CM_Set_DevNode_Registry_Propert
CM_Set_DevNode_Registry_Property_ExW@24=SETUPAPI.CM_Set_DevNode_Registry_Property_ExW
;CM_Set_HW_Prof
;CM_Set_HW_Prof_Ex
;CM_Set_HW_Prof_FlagsA
;CM_Set_HW_Prof_FlagsW
;CM_Set_HW_Prof_Flags_ExA
;CM_Set_HW_Prof_Flags_ExW
CM_Set_HW_Prof_FlagsA@16=SETUPAPI.CM_Set_HW_Prof_FlagsA
CM_Set_HW_Prof_FlagsW@16=SETUPAPI.CM_Set_HW_Prof_FlagsW
CM_Set_HW_Prof_Flags_ExA@20=SETUPAPI.CM_Set_HW_Prof_Flags_ExA
CM_Set_HW_Prof_Flags_ExW@20=SETUPAPI.CM_Set_HW_Prof_Flags_ExW
CM_Setup_DevNode@8=SETUPAPI.CM_Setup_DevNode
CM_Setup_DevNode_Ex@12=SETUPAPI.CM_Setup_DevNode_Ex
;CM_Test_Range_Available

View file

@ -2934,6 +2934,100 @@ CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW(
}
/***********************************************************************
* CM_Set_HW_Prof_FlagsA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA(
DEVINSTID_A szDevInstName, ULONG ulConfig, ULONG ulValue,
ULONG ulFlags)
{
TRACE("%s %lu %lu %lx\n", szDevInstName,
ulConfig, ulValue, ulFlags);
return CM_Set_HW_Prof_Flags_ExA(szDevInstName, ulConfig, ulValue,
ulFlags, NULL);
}
/***********************************************************************
* CM_Set_HW_Prof_FlagsW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW(
DEVINSTID_W szDevInstName, ULONG ulConfig, ULONG ulValue,
ULONG ulFlags)
{
TRACE("%s %lu %lu %lx\n", debugstr_w(szDevInstName),
ulConfig, ulValue, ulFlags);
return CM_Set_HW_Prof_Flags_ExW(szDevInstName, ulConfig, ulValue,
ulFlags, NULL);
}
/***********************************************************************
* CM_Set_HW_Prof_Flags_ExA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA(
DEVINSTID_A szDevInstName, ULONG ulConfig, ULONG ulValue,
ULONG ulFlags, HMACHINE hMachine)
{
DEVINSTID_W pszDevIdW = NULL;
CONFIGRET ret = CR_SUCCESS;
TRACE("%s %lu %lu %lx %lx\n", szDevInstName,
ulConfig, ulValue, ulFlags, hMachine);
if (szDevInstName != NULL)
{
if (CaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
return CR_INVALID_DEVICE_ID;
}
ret = CM_Set_HW_Prof_Flags_ExW(pszDevIdW, ulConfig, ulValue,
ulFlags, hMachine);
if (pszDevIdW != NULL)
MyFree(pszDevIdW);
return ret;
}
/***********************************************************************
* CM_Set_HW_Prof_Flags_ExW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW(
DEVINSTID_W szDevInstName, ULONG ulConfig, ULONG ulValue,
ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
FIXME("%s %lu %lu %lx %lx\n", debugstr_w(szDevInstName),
ulConfig, ulValue, ulFlags, hMachine);
if (szDevInstName == NULL)
return CR_INVALID_POINTER;
if (ulFlags & ~ CM_SET_HW_PROF_FLAGS_BITS)
return CR_INVALID_FLAG;
/* FIXME: Check whether szDevInstName is valid */
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return CR_FAILURE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return CR_FAILURE;
}
return PNP_HwProfFlags(BindingHandle, PNP_SET_HW_PROFILE_FLAGS, szDevInstName,
ulConfig, &ulValue, 0);
}
/***********************************************************************
* CM_Setup_DevNode [SETUPAPI.@]
*/

View file

@ -179,10 +179,10 @@
@ stdcall CM_Set_DevNode_Registry_Property_ExW(long long ptr long long long)
@ stub CM_Set_HW_Prof
@ stub CM_Set_HW_Prof_Ex
@ stub CM_Set_HW_Prof_FlagsA
@ stub CM_Set_HW_Prof_FlagsW
@ stub CM_Set_HW_Prof_Flags_ExA
@ stub CM_Set_HW_Prof_Flags_ExW
@ stdcall CM_Set_HW_Prof_FlagsA(str long long long)
@ stdcall CM_Set_HW_Prof_FlagsW(wstr long long long)
@ stdcall CM_Set_HW_Prof_Flags_ExA(str long long long long)
@ stdcall CM_Set_HW_Prof_Flags_ExW(wstr long long long long)
@ stdcall CM_Setup_DevNode(long long)
@ stdcall CM_Setup_DevNode_Ex(long long long)
@ stub CM_Test_Range_Available

View file

@ -2072,8 +2072,57 @@ CM_Set_DevNode_Registry_Property_ExW(
/* FIXME: Obsolete CM_Set_HW_Prof */
/* FIXME: Obsolete CM_Set_HW_Prof_Ex */
/* FIXME: Obsolete CM_Set_HW_Prof_Flags */
/* FIXME: Obsolete CM_Set_HW_Prof_Flags_Ex */
/* CM_Set_HW_Prof_Flags[_Ex].ulFlags constants */
#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK (0x00000001)
#define CM_SET_HW_PROF_FLAGS_BITS (0x00000001)
CMAPI
CONFIGRET
WINAPI
CM_Set_HW_Prof_FlagsA(
IN DEVINSTID_A szDevInstName,
IN ULONG ulConfig,
IN ULONG ulValue,
IN ULONG ulFlags);
CMAPI
CONFIGRET
WINAPI
CM_Set_HW_Prof_FlagsW(
IN DEVINSTID_W szDevInstName,
IN ULONG ulConfig,
IN ULONG ulValue,
IN ULONG ulFlags);
CMAPI
CONFIGRET
WINAPI
CM_Set_HW_Prof_Flags_ExA(
IN DEVINSTID_A szDevInstName,
IN ULONG ulConfig,
IN ULONG ulValue,
IN ULONG ulFlags,
IN HMACHINE hMachine);
CMAPI
CONFIGRET
WINAPI
CM_Set_HW_Prof_Flags_ExW(
IN DEVINSTID_W szDevInstName,
IN ULONG ulConfig,
IN ULONG ulValue,
IN ULONG ulFlags,
IN HMACHINE hMachine);
#ifdef UNICODE
#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsW
#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExW
#else
#define CM_Set_HW_Prof_Flags CM_Set_HW_Prof_FlagsA
#define CM_Set_HW_Prof_Flags_Ex CM_Set_HW_Prof_Flags_ExA
#endif /* UNICODE */
/* FIXME: Obsolete CM_Setup_DevNode */
/* FIXME: Obsolete CM_Setup_DevNode_Ex */
/* FIXME: Obsolete CM_Test_Range_Available */

View file

@ -185,6 +185,9 @@ DECL_WINELIB_CFGMGR32_TYPE_AW(DEVINSTID)
#define CM_CREATE_DEVINST_DO_NOT_INSTALL CM_CREATE_DEVNODE_DO_NOT_INSTALL
#define CM_CREATE_DEVINST_BITS CM_CREATE_DEVNODE_BITS
/* ulFlags for CM_Set_HW_Prof_Flags[_Ex]A/W */
#define CM_SET_HW_PROF_FLAGS_UI_NOT_OK 0x00000001
#define CM_SET_HW_PROF_FLAGS_BITS 0x00000001
#define CMP_MAGIC 0x01234567
@ -319,6 +322,12 @@ CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExA( DEVINST, ULONG, PCVOID, U
CONFIGRET WINAPI CM_Set_DevNode_Registry_Property_ExW( DEVINST, ULONG, PCVOID, ULONG, ULONG, HMACHINE );
#define CM_Set_DevNode_Registry_Property_Ex WINELIB_NAME_AW(CM_Set_DevNode_Registry_Property_Ex)
CONFIGRET WINAPI CM_Set_HW_Prof_FlagsA( DEVINSTID_A, ULONG, ULONG, ULONG );
CONFIGRET WINAPI CM_Set_HW_Prof_FlagsW( DEVINSTID_W, ULONG, ULONG, ULONG );
#define CM_Set_HW_Prof_Flags WINELIB_NAME_AW(CM_Set_HW_Prof_Flags)
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExA( DEVINSTID_A, ULONG, ULONG, ULONG, HMACHINE );
CONFIGRET WINAPI CM_Set_HW_Prof_Flags_ExW( DEVINSTID_W, ULONG, ULONG, ULONG, HMACHINE );
#define CM_Set_HW_Prof_Flags_Ex WINELIB_NAME_AW(CM_Set_HW_Prof_Flags_Ex)
CONFIGRET WINAPI CM_Setup_DevNode( DEVINST, ULONG );
CONFIGRET WINAPI CM_Setup_DevNode_Ex( DEVINST, ULONG, HMACHINE );