2013/4/24 James Eder <jimpor...@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