[SETUPAPI]

Implement CM_Is_Version_Available and CM_Is_Version_Available_Ex.

svn path=/trunk/; revision=50610
This commit is contained in:
Eric Kohl 2011-02-05 21:58:19 +00:00
parent 0b0d97cc92
commit d3bca39b11
2 changed files with 57 additions and 2 deletions

View file

@ -2918,6 +2918,61 @@ CONFIGRET WINAPI CM_Is_Dock_Station_Present_Ex(
}
/***********************************************************************
* CM_Is_Version_Available_Ex [SETUPAPI.@]
*/
BOOL WINAPI CM_Is_Version_Available(
WORD wVersion)
{
TRACE("%hu\n", wVersion);
return CM_Is_Version_Available_Ex(wVersion, NULL);
}
/***********************************************************************
* CM_Is_Version_Available_Ex [SETUPAPI.@]
*/
BOOL WINAPI CM_Is_Version_Available_Ex(
WORD wVersion, HMACHINE hMachine)
{
RPC_BINDING_HANDLE BindingHandle = NULL;
WORD wServerVersion;
CONFIGRET ret;
TRACE("%hu %lx\n", wVersion, hMachine);
if (wVersion <= 0x400)
return TRUE;
if (hMachine != NULL)
{
BindingHandle = ((PMACHINE_INFO)hMachine)->BindingHandle;
if (BindingHandle == NULL)
return FALSE;
}
else
{
if (!PnpGetLocalHandles(&BindingHandle, NULL))
return FALSE;
}
RpcTryExcept
{
ret = PNP_GetVersion(BindingHandle, &wServerVersion);
}
RpcExcept(EXCEPTION_EXECUTE_HANDLER)
{
ret = RpcStatusToCmStatus(RpcExceptionCode());
}
RpcEndExcept;
if (ret != CR_SUCCESS)
return FALSE;
return (wServerVersion >= wVersion);
}
/***********************************************************************
* CM_Locate_DevNodeA [SETUPAPI.@]
*/

View file

@ -137,8 +137,8 @@
@ stub CM_Invert_Range_List
@ stdcall CM_Is_Dock_Station_Present(ptr)
@ stdcall CM_Is_Dock_Station_Present_Ex(ptr long)
@ stub CM_Is_Version_Available
@ stub CM_Is_Version_Available_Ex
@ stdcall CM_Is_Version_Available(long)
@ stdcall CM_Is_Version_Available_Ex(long long)
@ stdcall CM_Locate_DevNodeA(ptr str long)
@ stdcall CM_Locate_DevNodeW(ptr wstr long)
@ stdcall CM_Locate_DevNode_ExA(ptr str long long)