Implement CM_Get_HW_Prof_Flags[_Ex]A/W and add PNP_HwProfFlags stub.

svn path=/trunk/; revision=22391
This commit is contained in:
Eric Kohl 2006-06-18 14:36:42 +00:00
parent aabda4b500
commit 1c0c7413bd
7 changed files with 187 additions and 10 deletions

View file

@ -1222,6 +1222,27 @@ PNP_RequestEjectPC(handle_t BindingHandle)
}
/* Function 40 */
CONFIGRET
PNP_HwProfFlags(handle_t BindingHandle,
unsigned long Action,
wchar_t *DeviceId,
unsigned long ProfileId,
unsigned long *Value, // out
unsigned long Flags)
{
CONFIGRET ret = CR_SUCCESS;
DPRINT1("PNP_HwProfFlags() called\n");
ret = CR_CALL_NOT_IMPLEMENTED; /* FIXME */
DPRINT1("PNP_HwProfFlags() done (returns %lx)\n", ret);
return ret;
}
/* Function 58 */
CONFIGRET
PNP_RunDetection(handle_t BindingHandle,

View file

@ -117,10 +117,10 @@ CM_Get_Device_ID_Size_Ex@16=SETUPAPI.CM_Get_Device_ID_Size_Ex
;CM_Get_First_Log_Conf_Ex
CM_Get_Global_State@8=SETUPAPI.CM_Get_Global_State
CM_Get_Global_State_Ex@12=SETUPAPI.CM_Get_Global_State_Ex
;CM_Get_HW_Prof_FlagsA
;CM_Get_HW_Prof_FlagsW
;CM_Get_HW_Prof_Flags_ExA
;CM_Get_HW_Prof_Flags_ExW
CM_Get_HW_Prof_FlagsA@16=SETUPAPI.CM_Get_HW_Prof_FlagsA
CM_Get_HW_Prof_FlagsW@16=SETUPAPI.CM_Get_HW_Prof_FlagsW
CM_Get_HW_Prof_Flags_ExA@20=SETUPAPI.CM_Get_HW_Prof_Flags_ExA
CM_Get_HW_Prof_Flags_ExW@20=SETUPAPI.CM_Get_HW_Prof_Flags_ExW
;CM_Get_Hardware_Profile_InfoA
;CM_Get_Hardware_Profile_InfoW
;CM_Get_Hardware_Profile_Info_ExA

View file

@ -1782,6 +1782,102 @@ CONFIGRET WINAPI CM_Get_Global_State_Ex(
}
/***********************************************************************
* CM_Get_HW_Prof_FlagsA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA(
DEVINSTID_A szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags)
{
TRACE("%s %lu %p %lx\n", szDevInstName,
ulHardwareProfile, pulValue, ulFlags);
return CM_Get_HW_Prof_Flags_ExA(szDevInstName, ulHardwareProfile,
pulValue, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_HW_Prof_FlagsW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW(
DEVINSTID_W szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags)
{
TRACE("%s %lu %p %lx\n", debugstr_w(szDevInstName),
ulHardwareProfile, pulValue, ulFlags);
return CM_Get_HW_Prof_Flags_ExW(szDevInstName, ulHardwareProfile,
pulValue, ulFlags, NULL);
}
/***********************************************************************
* CM_Get_HW_Prof_Flags_ExA [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA(
DEVINSTID_A szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags, HMACHINE hMachine)
{
DEVINSTID_W pszDevIdW = NULL;
CONFIGRET ret = CR_SUCCESS;
TRACE("%s %lu %p %lx %lx\n", szDevInstName,
ulHardwareProfile, pulValue, ulFlags, hMachine);
if (szDevInstName != NULL)
{
if (CaptureAndConvertAnsiArg(szDevInstName, &pszDevIdW))
return CR_INVALID_DEVICE_ID;
}
ret = CM_Get_HW_Prof_Flags_ExW(pszDevIdW, ulHardwareProfile,
pulValue, ulFlags, hMachine);
if (pszDevIdW != NULL)
MyFree(pszDevIdW);
return ret;
}
/***********************************************************************
* CM_Get_HW_Prof_Flags_ExW [SETUPAPI.@]
*/
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW(
DEVINSTID_W szDevInstName, ULONG ulHardwareProfile, PULONG pulValue,
ULONG ulFlags, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
FIXME("%s %lu %p %lx %lx\n", debugstr_w(szDevInstName),
ulHardwareProfile, pulValue, ulFlags, hMachine);
if ((szDevInstName == NULL) || (pulValue == NULL))
return CR_INVALID_POINTER;
if (ulFlags != 0)
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_GET_HW_PROFILE_FLAGS, szDevInstName,
ulHardwareProfile, pulValue, 0);
}
/***********************************************************************
* CM_Get_Parent [SETUPAPI.@]
*/

View file

@ -101,10 +101,10 @@
@ stub CM_Get_First_Log_Conf_Ex
@ stdcall CM_Get_Global_State(ptr long)
@ stdcall CM_Get_Global_State_Ex(ptr long long)
@ stub CM_Get_HW_Prof_FlagsA
@ stub CM_Get_HW_Prof_FlagsW
@ stub CM_Get_HW_Prof_Flags_ExA
@ stub CM_Get_HW_Prof_Flags_ExW
@ stdcall CM_Get_HW_Prof_FlagsA(str long ptr long)
@ stdcall CM_Get_HW_Prof_FlagsW(wstr long ptr long)
@ stdcall CM_Get_HW_Prof_Flags_ExA(str long ptr long long)
@ stdcall CM_Get_HW_Prof_Flags_ExW(wstr long ptr long long)
@ stub CM_Get_Hardware_Profile_InfoA
@ stub CM_Get_Hardware_Profile_InfoW
@ stub CM_Get_Hardware_Profile_Info_ExA

View file

@ -1428,8 +1428,52 @@ CM_Get_Global_State_Ex(
/* FIXME: Obsolete CM_Get_Hardware_Profile_Info */
/* FIXME: Obsolete CM_Get_Hardware_Profile_Info_Ex */
/* FIXME: Obsolete CM_Get_HW_Prof_Flags */
/* FIXME: Obsolete CM_Get_HW_Prof_Flags_Ex */
CMAPI
CONFIGRET
WINAPI
CM_Get_HW_Prof_FlagsA(
IN DEVINSTID_A szDevInstName,
IN ULONG ulHardwareProfile,
OUT PULONG pulValue,
IN ULONG ulFlags);
CMAPI
CONFIGRET
WINAPI
CM_Get_HW_Prof_FlagsW(
IN DEVINSTID_W szDevInstName,
IN ULONG ulHardwareProfile,
OUT PULONG pulValue,
IN ULONG ulFlags);
CMAPI
CONFIGRET
WINAPI
CM_Get_HW_Prof_Flags_ExA(
IN DEVINSTID_A szDevInstName,
IN ULONG ulHardwareProfile,
OUT PULONG pulValue,
IN ULONG ulFlags,
IN HMACHINE hMachine);
CMAPI
CONFIGRET
WINAPI
CM_Get_HW_Prof_Flags_ExW(
IN DEVINSTID_W szDevInstName,
IN ULONG ulHardwareProfile,
OUT PULONG pulValue,
IN ULONG ulFlags,
IN HMACHINE hMachine);
#ifdef UNICODE
#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsW
#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExW
#else
#define CM_Get_HW_Prof_Flags CM_Get_HW_Prof_FlagsA
#define CM_Get_HW_Prof_Flags_Ex CM_Get_HW_Prof_Flags_ExA
#endif /* UNICODE */
CMAPI
CONFIGRET

View file

@ -187,6 +187,16 @@ interface pnp
/* Function 39 */
CONFIGRET PNP_RequestEjectPC(handle_t BindingHandle);
/* Function 40 */
cpp_quote("#define PNP_SET_HW_PROFILE_FLAGS 0")
cpp_quote("#define PNP_GET_HW_PROFILE_FLAGS 1")
CONFIGRET PNP_HwProfFlags(handle_t BindingHandle,
[in] DWORD Action,
[in, string] wchar_t *DeviceId,
[in] DWORD ProfileId,
[in, out] unsigned long *Value,
[in] DWORD Flags);
/* Function 58 */
CONFIGRET PNP_RunDetection(handle_t BindingHandle,
[in] unsigned long Flags);

View file

@ -270,6 +270,12 @@ CONFIGRET WINAPI CM_Get_Device_ID_Size( PULONG, DEVINST, ULONG );
CONFIGRET WINAPI CM_Get_Device_ID_Size_Ex( PULONG, DEVINST, ULONG, HMACHINE );
CONFIGRET WINAPI CM_Get_Global_State( PULONG, ULONG );
CONFIGRET WINAPI CM_Get_Global_State_Ex( PULONG, ULONG, HMACHINE );
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsA( DEVINSTID_A, ULONG, PULONG, ULONG );
CONFIGRET WINAPI CM_Get_HW_Prof_FlagsW( DEVINSTID_W, ULONG, PULONG, ULONG );
#define CM_Get_HW_Prof_Flags WINELIB_NAME_AW(CM_Get_HW_Prof_Flags)
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExA( DEVINSTID_A, ULONG, PULONG, ULONG, HMACHINE );
CONFIGRET WINAPI CM_Get_HW_Prof_Flags_ExW( DEVINSTID_W, ULONG, PULONG, ULONG, HMACHINE );
#define CM_Get_HW_Prof_Flags_Ex WINELIB_NAME_AW(CM_Get_HW_Prof_Flags_Ex)
CONFIGRET WINAPI CM_Get_Parent( PDEVINST, DEVINST, ULONG );
CONFIGRET WINAPI CM_Get_Parent_Ex( PDEVINST, DEVINST, ULONG, HMACHINE );
CONFIGRET WINAPI CM_Get_Sibling( PDEVINST, DEVINST, ULONG );