2013/4/24 James Eder <jimportal(a)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