[PATCH] kernel32: Actually return a PERFORMANCE_INFORMATION structure in K32GetPerformanceInfo (try 2)

Christian Costa titan.costa at gmail.com
Wed Apr 24 07:58:44 CDT 2013


2013/4/24 James Eder <jimportal at gmail.com>

> This version should either pass or skip on W2KPROSP4.
> ---
>  dlls/kernel32/cpu.c           | 23 ++++++++++++++++++-----
>  dlls/psapi/tests/psapi_main.c | 36 ++++++++++++++++++++++++++++++++++++
>  2 files changed, 54 insertions(+), 5 deletions(-)
>
> diff --git a/dlls/kernel32/cpu.c b/dlls/kernel32/cpu.c
> index 0ebf8f3..124e5c0 100644
> --- a/dlls/kernel32/cpu.c
> +++ b/dlls/kernel32/cpu.c
> @@ -216,16 +216,29 @@ BOOL WINAPI IsProcessorFeaturePresent (
>   */
>  BOOL WINAPI K32GetPerformanceInfo(PPERFORMANCE_INFORMATION info, DWORD
> size)
>  {
> -    NTSTATUS status;
> +    MEMORYSTATUSEX mem_status;
>
>      TRACE( "(%p, %d)\n", info, size );
>
> -    status = NtQuerySystemInformation( SystemPerformanceInformation,
> info, size, NULL );
> -
> -    if (status)
> +    if(size < sizeof(PERFORMANCE_INFORMATION))
>      {
> -        SetLastError( RtlNtStatusToDosError( status ) );
> +        SetLastError(ERROR_BAD_LENGTH);
>          return FALSE;
>      }
> +
> +    mem_status.dwLength = sizeof(mem_status);
> +    if (!GlobalMemoryStatusEx( &mem_status ))
> +        return FALSE;
> +
> +    memset(info, 0, sizeof(PERFORMANCE_INFORMATION));
> +
> +    info->cb                = sizeof(PERFORMANCE_INFORMATION);
> +    info->CommitLimit       = min((mem_status.ullTotalPageFile /
> system_info.PageSize), MAXDWORD);
> +    info->PhysicalTotal     = min((mem_status.ullTotalPhys /
> system_info.PageSize), MAXDWORD);
> +    info->PhysicalAvailable = min((mem_status.ullAvailPhys /
> system_info.PageSize), MAXDWORD);
> +    info->PageSize          = system_info.PageSize;
> +
> +    FIXME("stub\n");
> +
>

Hi James,

That would be better to change the trace at the beginning by FIXME( "(%p,
%d): semi-stub\n", info, size ); or FIXME( "(%p, %d): partial stub\n",
info, size );
instead of adding another fixme (which is not really correct since it's not
a stub).

Christian
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20130424/6b6c2b33/attachment.html>


More information about the wine-devel mailing list