From 89d35e62dd4eb5f2627509b55b90eba34a949a93 Mon Sep 17 00:00:00 2001 From: Aleksey Bragin Date: Mon, 16 Jun 2008 09:20:47 +0000 Subject: [PATCH] - More NDK fixes. - Hackmove: Define NTDDI_VERSION in kernel32, otherwise it gets derived from WINVER version (and thus kernel32 becomes Vista). This allows to remove #undef NTDDI_VERSION from ndk/obtypes.h. svn path=/trunk/; revision=33990 --- reactos/dll/win32/gdi32/objects/brush.c | 7 +++---- reactos/dll/win32/gdi32/objects/dc.c | 7 ++----- reactos/dll/win32/gdi32/objects/font.c | 2 +- reactos/dll/win32/gdi32/objects/text.c | 6 ++---- reactos/dll/win32/kernel32/kernel32.rbuild | 1 + reactos/include/ndk/exfuncs.h | 9 ++++++++ reactos/include/ndk/extypes.h | 24 +++++++++++----------- reactos/include/ndk/obtypes.h | 9 +++++--- reactos/include/ndk/psfuncs.h | 8 ++++++++ reactos/include/ndk/pstypes.h | 23 ++++++++++++++++++--- reactos/include/ndk/umtypes.h | 2 ++ 11 files changed, 66 insertions(+), 32 deletions(-) diff --git a/reactos/dll/win32/gdi32/objects/brush.c b/reactos/dll/win32/gdi32/objects/brush.c index 2658406568b..51cf766698b 100644 --- a/reactos/dll/win32/gdi32/objects/brush.c +++ b/reactos/dll/win32/gdi32/objects/brush.c @@ -317,7 +317,7 @@ SetROP2(HDC hdc, #endif if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG) hdc) + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) { if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY) { @@ -390,7 +390,7 @@ SetBrushOrgEx(HDC hdc, if ((nXOrg == Dc_Attr->ptlBrushOrigin.x) && (nYOrg == Dc_Attr->ptlBrushOrigin.y)) return TRUE; - if(((pTeb->GdiTebBatch.HDC == 0) || (pTeb->GdiTebBatch.HDC == (ULONG)hdc)) && + if(((pTeb->GdiTebBatch.HDC == NULL) || (pTeb->GdiTebBatch.HDC == hdc)) && ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSSETBRHORG)) <= GDIBATCHBUFSIZE) && (!(Dc_Attr->ulDirty_ & DC_DIBSECTION)) ) { @@ -405,7 +405,7 @@ SetBrushOrgEx(HDC hdc, pgSBO->ptlBrushOrigin = Dc_Attr->ptlBrushOrigin; pTeb->GdiTebBatch.Offset += sizeof(GDIBSSETBRHORG); - pTeb->GdiTebBatch.HDC = (ULONG)hdc; + pTeb->GdiTebBatch.HDC = hdc; pTeb->GdiBatchCount++; DPRINT("Loading the Flush!! COUNT-> %d\n", pTeb->GdiBatchCount); @@ -420,4 +420,3 @@ SetBrushOrgEx(HDC hdc, } return NtGdiSetBrushOrg(hdc,nXOrg,nYOrg,lppt); } - diff --git a/reactos/dll/win32/gdi32/objects/dc.c b/reactos/dll/win32/gdi32/objects/dc.c index 1de4bbbe2e5..38563579b7e 100644 --- a/reactos/dll/win32/gdi32/objects/dc.c +++ b/reactos/dll/win32/gdi32/objects/dc.c @@ -994,7 +994,7 @@ SetPolyFillMode(HDC hdc, #endif if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc) + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) { if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY) { @@ -1041,7 +1041,7 @@ SetGraphicsMode(HDC hdc, if (iMode == Dc_Attr->iGraphicsMode) return iMode; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc) + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) { if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY) { @@ -1444,6 +1444,3 @@ SelectObject(HDC hDC, return NULL; } - - - diff --git a/reactos/dll/win32/gdi32/objects/font.c b/reactos/dll/win32/gdi32/objects/font.c index 7d2a0ed02f8..eaeceb97999 100644 --- a/reactos/dll/win32/gdi32/objects/font.c +++ b/reactos/dll/win32/gdi32/objects/font.c @@ -1714,7 +1714,7 @@ SetMapperFlags( #endif if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return GDI_ERROR; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hDC) + if (NtCurrentTeb()->GdiTebBatch.HDC == hDC) { if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY) { diff --git a/reactos/dll/win32/gdi32/objects/text.c b/reactos/dll/win32/gdi32/objects/text.c index 32cba34591f..7dd259c40f8 100644 --- a/reactos/dll/win32/gdi32/objects/text.c +++ b/reactos/dll/win32/gdi32/objects/text.c @@ -472,7 +472,7 @@ SetTextCharacterExtra( #endif if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return cExtra; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hDC) + if (NtCurrentTeb()->GdiTebBatch.HDC == hDC) { if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY) { @@ -629,7 +629,7 @@ SetTextJustification( #endif if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE; - if (NtCurrentTeb()->GdiTebBatch.HDC == (ULONG)hdc) + if (NtCurrentTeb()->GdiTebBatch.HDC == hdc) { if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY) { @@ -641,5 +641,3 @@ SetTextJustification( Dc_Attr->lBreakExtra = extra; return TRUE; } - - diff --git a/reactos/dll/win32/kernel32/kernel32.rbuild b/reactos/dll/win32/kernel32/kernel32.rbuild index 830f5f0c580..bb5dbc3737b 100644 --- a/reactos/dll/win32/kernel32/kernel32.rbuild +++ b/reactos/dll/win32/kernel32/kernel32.rbuild @@ -9,6 +9,7 @@ 0x0600 0x609 + 0x05020100 errcodes k32.h diff --git a/reactos/include/ndk/exfuncs.h b/reactos/include/ndk/exfuncs.h index 88fdb07eb3f..b3ca9a4b487 100644 --- a/reactos/include/ndk/exfuncs.h +++ b/reactos/include/ndk/exfuncs.h @@ -26,6 +26,10 @@ Author: #include #include +#ifdef __cplusplus +extern "C" { +#endif + // // Don't include WMI headers just for one define // @@ -1017,4 +1021,9 @@ ZwTraceEvent( IN ULONG TraceHeaderLength, IN PEVENT_TRACE_HEADER TraceHeader ); + +#ifdef __cplusplus +} +#endif + #endif diff --git a/reactos/include/ndk/extypes.h b/reactos/include/ndk/extypes.h index 64d2b210037..b6b69c09383 100644 --- a/reactos/include/ndk/extypes.h +++ b/reactos/include/ndk/extypes.h @@ -855,24 +855,24 @@ typedef struct _SYSTEM_PROCESS_INFORMATION HANDLE InheritedFromUniqueProcessId; ULONG HandleCount; ULONG SessionId; - ULONG UniqueProcessKey; + ULONG_PTR PageDirectoryBase; // // This part corresponds to VM_COUNTERS_EX. // NOTE: *NOT* THE SAME AS VM_COUNTERS! // - ULONG PeakVirtualSize; + SIZE_T PeakVirtualSize; ULONG VirtualSize; - ULONG PageFaultCount; - ULONG PeakWorkingSetSize; - ULONG WorkingSetSize; - ULONG QuotaPeakPagedPoolUsage; - ULONG QuotaPagedPoolUsage; - ULONG QuotaPeakNonPagedPoolUsage; - ULONG QuotaNonPagedPoolUsage; - ULONG PagefileUsage; - ULONG PeakPagefileUsage; - ULONG PrivatePageCount; + SIZE_T PageFaultCount; + SIZE_T PeakWorkingSetSize; + SIZE_T WorkingSetSize; + SIZE_T QuotaPeakPagedPoolUsage; + SIZE_T QuotaPagedPoolUsage; + SIZE_T QuotaPeakNonPagedPoolUsage; + SIZE_T QuotaNonPagedPoolUsage; + SIZE_T PagefileUsage; + SIZE_T PeakPagefileUsage; + SIZE_T PrivatePageCount; // // This part corresponds to IO_COUNTERS diff --git a/reactos/include/ndk/obtypes.h b/reactos/include/ndk/obtypes.h index b0770647b58..fbef4f5a5cb 100644 --- a/reactos/include/ndk/obtypes.h +++ b/reactos/include/ndk/obtypes.h @@ -19,9 +19,6 @@ Author: #ifndef _OBTYPES_H #define _OBTYPES_H -#undef NTDDI_VERSION -#define NTDDI_VERSION NTDDI_WS03SP1 - // // Dependencies // @@ -299,6 +296,12 @@ typedef struct _OBJECT_TYPE_INFORMATION ULONG DefaultNonPagedPoolCharge; } OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION; +typedef struct _OBJECT_ALL_TYPES_INFORMATION +{ + ULONG NumberOfTypes; + //OBJECT_TYPE_INFORMATION TypeInformation[1]; +} OBJECT_ALL_TYPES_INFORMATION, *POBJECT_ALL_TYPES_INFORMATION; + #ifdef NTOS_MODE_USER typedef struct _OBJECT_BASIC_INFORMATION diff --git a/reactos/include/ndk/psfuncs.h b/reactos/include/ndk/psfuncs.h index 5a15e6724c0..fecdd6de8f6 100644 --- a/reactos/include/ndk/psfuncs.h +++ b/reactos/include/ndk/psfuncs.h @@ -25,6 +25,10 @@ Author: #include #include +#ifdef __cplusplus +extern "C" { +#endif + #ifndef NTOS_MODE_USER // @@ -744,4 +748,8 @@ ZwTerminateJobObject( NTSTATUS ExitStatus ); +#ifdef __cplusplus +} +#endif + #endif diff --git a/reactos/include/ndk/pstypes.h b/reactos/include/ndk/pstypes.h index 0047d2f5dc1..4e3bc7da11f 100644 --- a/reactos/include/ndk/pstypes.h +++ b/reactos/include/ndk/pstypes.h @@ -293,6 +293,12 @@ typedef enum _PROCESSINFOCLASS ProcessCycleTime, ProcessPagePriority, ProcessInstrumentationCallback, + ProcessThreadStackAllocation, + ProcessWorkingSetWatchEx, + ProcessImageFileNameWin32, + ProcessImageFileMapping, + ProcessAffinityUpdateMode, + ProcessMemoryAllocationMode, MaxProcessInfoClass } PROCESSINFOCLASS; @@ -680,7 +686,7 @@ typedef struct _PEB typedef struct _GDI_TEB_BATCH { ULONG Offset; - ULONG HDC; + HANDLE HDC; ULONG Buffer[0x136]; } GDI_TEB_BATCH, *PGDI_TEB_BATCH; @@ -735,7 +741,11 @@ typedef struct _TEB PVOID SystemReserved1[0x36]; LONG ExceptionCode; struct _ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer; +#ifdef _WIN64 + UCHAR SpareBytes1[24]; +#else UCHAR SpareBytes1[0x24]; +#endif ULONG TxFsContext; GDI_TEB_BATCH GdiTebBatch; CLIENT_ID RealClientId; @@ -743,9 +753,9 @@ typedef struct _TEB ULONG GdiClientPID; ULONG GdiClientTID; PVOID GdiThreadLocalInfo; - ULONG Win32ClientInfo[62]; + SIZE_T Win32ClientInfo[62]; PVOID glDispatchTable[0xE9]; - ULONG glReserved1[0x1D]; + SIZE_T glReserved1[0x1D]; PVOID glReserved2; PVOID glSectionInfo; PVOID glSection; @@ -762,10 +772,17 @@ typedef struct _TEB PVOID ReservedForNtRpc; PVOID DbgSsReserved[0x2]; ULONG HardErrorDisabled; +#ifdef _WIN64 + PVOID Instrumentation[11]; +#else PVOID Instrumentation[9]; +#endif GUID ActivityId; PVOID SubProcessTag; PVOID EtwTraceData; +#if (NTDDI_VERSION >= NTDDI_LONGHORN) + PVOID EtwLocalData; +#endif PVOID WinSockData; ULONG GdiBatchCount; #if (NTDDI_VERSION >= NTDDI_LONGHORN) diff --git a/reactos/include/ndk/umtypes.h b/reactos/include/ndk/umtypes.h index f36d6b040f5..cb851976f9a 100644 --- a/reactos/include/ndk/umtypes.h +++ b/reactos/include/ndk/umtypes.h @@ -53,7 +53,9 @@ Author: // #ifndef _MANAGED #if defined(_M_IX86) +#ifndef FASTCALL #define FASTCALL _fastcall +#endif #else #define FASTCALL #endif