Mismatch in winternl.h for SYSTEM_*_INFORMATION structs
Paul Vriens
Paul.Vriens at xs4all.nl
Mon Apr 11 02:57:53 CDT 2005
Hi,
I'm busy fixing up NtQuerySystemInformation as this is needed for my
'Get Processor Explorer running' project.
I've found that (at least) 2 structs are wrongly sized:
/* System Information Class 0x03 */
typedef struct _SYSTEM_TIMEOFDAY_INFORMATION {
#ifdef __WINESRC__
LARGE_INTEGER liKeBootTime;
LARGE_INTEGER liKeSystemTime;
LARGE_INTEGER liExpTimeZoneBias;
ULONG uCurrentTimeZoneId;
DWORD dwReserved;
#else
BYTE Reserved1[48];
#endif
} SYSTEM_TIMEOFDAY_INFORMATION, *PSYSTEM_TIMEOFDAY_INFORMATION; /* was SYSTEM_TIME_INFORMATION */
In the __WINESRC__ case it's 32 bytes and 48 otherwise.
The same is true for the _SYSTEM_PROCESSOR_PERFORMANCE_INFORMATION
struct, where in the __WINESRC__ case it's 48 bytes and 44 bytes
otherwise.
So my questions are:
1. Is there a reason for this, or is it a bug.
2. Why do we have separate structs for the WINE and the NOT-WINE case.
Is this because most of it is undocumented?
Cheers,
Paul Vriens.
More information about the wine-devel
mailing list