On Sunday 03 October 2010 16:22:07 Eric Pouech wrote:
SystemCpuInformation seems not defined anywhere outside Wine. It's not defined on MSDN, neither can it be found on any Wine-unrelated Documentations/Source-codes or Documentations. If you have any links or documentation for SystemCpuInformation, could you send them please ?
If i can't extend the struct, i think it would be easier to just move the parser into kernel32/process as well and avoid modifiying this interface as NtQuerySystemInformation is marked as deprecated on MSDN anyway.
try SystemProcessorInformation and SYSTEM_PROCESSOR_INFORMATION (instead of SystemCpuInformation and SYSTEM_CPU_INFORMATION) and you'll see that it's not Wine specific. so you cannot extend them
moreover, don't trust MSDN... they're simply saying that if there's the same API in kernel32 it should be prefered over it's ntdll counterpart...
regarding your patch, the core of the work has to be done in ntdll. you just have to find the correct API in ntdll that does the job you're not using the right one (at least for the class of the query) for example, SystemNumaProcessorMap could help you... (even I coudn't find some docs about the structures, but I didn't search a lot), and reverse engineering (using ntdll as a blackbox) may be of some help
A+
I just found out that SystemProcessorInformation is the same as SystemCpuInformation in Wine, both of them are SystemClass 0x01, so that class won't be of much help either. Thats also why i couldn't find anything related to SystemCpuInformation and that also means that my first set of patches was definitly the wrong approach.
Since i had some free time today, i have rewritten and submitted the patch not using the ntdll interface as i suggested before already. I'll also try to find out if there is any usable SystemClass, hopefully there is one.