- 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
This commit is contained in:
Aleksey Bragin 2008-06-16 09:20:47 +00:00
parent 6c45a42f53
commit 89d35e62dd
11 changed files with 66 additions and 32 deletions

View file

@ -317,7 +317,7 @@ SetROP2(HDC hdc,
#endif #endif
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE; 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) 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)) if ((nXOrg == Dc_Attr->ptlBrushOrigin.x) && (nYOrg == Dc_Attr->ptlBrushOrigin.y))
return TRUE; 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) && ((pTeb->GdiTebBatch.Offset + sizeof(GDIBSSETBRHORG)) <= GDIBATCHBUFSIZE) &&
(!(Dc_Attr->ulDirty_ & DC_DIBSECTION)) ) (!(Dc_Attr->ulDirty_ & DC_DIBSECTION)) )
{ {
@ -405,7 +405,7 @@ SetBrushOrgEx(HDC hdc,
pgSBO->ptlBrushOrigin = Dc_Attr->ptlBrushOrigin; pgSBO->ptlBrushOrigin = Dc_Attr->ptlBrushOrigin;
pTeb->GdiTebBatch.Offset += sizeof(GDIBSSETBRHORG); pTeb->GdiTebBatch.Offset += sizeof(GDIBSSETBRHORG);
pTeb->GdiTebBatch.HDC = (ULONG)hdc; pTeb->GdiTebBatch.HDC = hdc;
pTeb->GdiBatchCount++; pTeb->GdiBatchCount++;
DPRINT("Loading the Flush!! COUNT-> %d\n", pTeb->GdiBatchCount); DPRINT("Loading the Flush!! COUNT-> %d\n", pTeb->GdiBatchCount);
@ -420,4 +420,3 @@ SetBrushOrgEx(HDC hdc,
} }
return NtGdiSetBrushOrg(hdc,nXOrg,nYOrg,lppt); return NtGdiSetBrushOrg(hdc,nXOrg,nYOrg,lppt);
} }

View file

@ -994,7 +994,7 @@ SetPolyFillMode(HDC hdc,
#endif #endif
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return 0; 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) if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
{ {
@ -1041,7 +1041,7 @@ SetGraphicsMode(HDC hdc,
if (iMode == Dc_Attr->iGraphicsMode) return iMode; 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) if (Dc_Attr->ulDirty_ & DC_MODE_DIRTY)
{ {
@ -1444,6 +1444,3 @@ SelectObject(HDC hDC,
return NULL; return NULL;
} }

View file

@ -1714,7 +1714,7 @@ SetMapperFlags(
#endif #endif
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return GDI_ERROR; 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) if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
{ {

View file

@ -472,7 +472,7 @@ SetTextCharacterExtra(
#endif #endif
if (!GdiGetHandleUserData((HGDIOBJ) hDC, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return cExtra; 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) if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
{ {
@ -629,7 +629,7 @@ SetTextJustification(
#endif #endif
if (!GdiGetHandleUserData((HGDIOBJ) hdc, GDI_OBJECT_TYPE_DC, (PVOID) &Dc_Attr)) return FALSE; 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) if (Dc_Attr->ulDirty_ & DC_FONTTEXT_DIRTY)
{ {
@ -641,5 +641,3 @@ SetTextJustification(
Dc_Attr->lBreakExtra = extra; Dc_Attr->lBreakExtra = extra;
return TRUE; return TRUE;
} }

View file

@ -9,6 +9,7 @@
<define name="_WIN32_WINNT">0x0600</define> <define name="_WIN32_WINNT">0x0600</define>
<define name="__NO_CTYPE_INLINES" /> <define name="__NO_CTYPE_INLINES" />
<define name="WINVER">0x609</define> <define name="WINVER">0x609</define>
<define name="NTDDI_VERSION">0x05020100</define>
<dependency>errcodes</dependency> <dependency>errcodes</dependency>
<pch>k32.h</pch> <pch>k32.h</pch>
<directory name="debug"> <directory name="debug">

View file

@ -26,6 +26,10 @@ Author:
#include <pstypes.h> #include <pstypes.h>
#include <extypes.h> #include <extypes.h>
#ifdef __cplusplus
extern "C" {
#endif
// //
// Don't include WMI headers just for one define // Don't include WMI headers just for one define
// //
@ -1017,4 +1021,9 @@ ZwTraceEvent(
IN ULONG TraceHeaderLength, IN ULONG TraceHeaderLength,
IN PEVENT_TRACE_HEADER TraceHeader IN PEVENT_TRACE_HEADER TraceHeader
); );
#ifdef __cplusplus
}
#endif
#endif #endif

View file

@ -855,24 +855,24 @@ typedef struct _SYSTEM_PROCESS_INFORMATION
HANDLE InheritedFromUniqueProcessId; HANDLE InheritedFromUniqueProcessId;
ULONG HandleCount; ULONG HandleCount;
ULONG SessionId; ULONG SessionId;
ULONG UniqueProcessKey; ULONG_PTR PageDirectoryBase;
// //
// This part corresponds to VM_COUNTERS_EX. // This part corresponds to VM_COUNTERS_EX.
// NOTE: *NOT* THE SAME AS VM_COUNTERS! // NOTE: *NOT* THE SAME AS VM_COUNTERS!
// //
ULONG PeakVirtualSize; SIZE_T PeakVirtualSize;
ULONG VirtualSize; ULONG VirtualSize;
ULONG PageFaultCount; SIZE_T PageFaultCount;
ULONG PeakWorkingSetSize; SIZE_T PeakWorkingSetSize;
ULONG WorkingSetSize; SIZE_T WorkingSetSize;
ULONG QuotaPeakPagedPoolUsage; SIZE_T QuotaPeakPagedPoolUsage;
ULONG QuotaPagedPoolUsage; SIZE_T QuotaPagedPoolUsage;
ULONG QuotaPeakNonPagedPoolUsage; SIZE_T QuotaPeakNonPagedPoolUsage;
ULONG QuotaNonPagedPoolUsage; SIZE_T QuotaNonPagedPoolUsage;
ULONG PagefileUsage; SIZE_T PagefileUsage;
ULONG PeakPagefileUsage; SIZE_T PeakPagefileUsage;
ULONG PrivatePageCount; SIZE_T PrivatePageCount;
// //
// This part corresponds to IO_COUNTERS // This part corresponds to IO_COUNTERS

View file

@ -19,9 +19,6 @@ Author:
#ifndef _OBTYPES_H #ifndef _OBTYPES_H
#define _OBTYPES_H #define _OBTYPES_H
#undef NTDDI_VERSION
#define NTDDI_VERSION NTDDI_WS03SP1
// //
// Dependencies // Dependencies
// //
@ -299,6 +296,12 @@ typedef struct _OBJECT_TYPE_INFORMATION
ULONG DefaultNonPagedPoolCharge; ULONG DefaultNonPagedPoolCharge;
} OBJECT_TYPE_INFORMATION, *POBJECT_TYPE_INFORMATION; } 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 #ifdef NTOS_MODE_USER
typedef struct _OBJECT_BASIC_INFORMATION typedef struct _OBJECT_BASIC_INFORMATION

View file

@ -25,6 +25,10 @@ Author:
#include <umtypes.h> #include <umtypes.h>
#include <pstypes.h> #include <pstypes.h>
#ifdef __cplusplus
extern "C" {
#endif
#ifndef NTOS_MODE_USER #ifndef NTOS_MODE_USER
// //
@ -744,4 +748,8 @@ ZwTerminateJobObject(
NTSTATUS ExitStatus NTSTATUS ExitStatus
); );
#ifdef __cplusplus
}
#endif
#endif #endif

View file

@ -293,6 +293,12 @@ typedef enum _PROCESSINFOCLASS
ProcessCycleTime, ProcessCycleTime,
ProcessPagePriority, ProcessPagePriority,
ProcessInstrumentationCallback, ProcessInstrumentationCallback,
ProcessThreadStackAllocation,
ProcessWorkingSetWatchEx,
ProcessImageFileNameWin32,
ProcessImageFileMapping,
ProcessAffinityUpdateMode,
ProcessMemoryAllocationMode,
MaxProcessInfoClass MaxProcessInfoClass
} PROCESSINFOCLASS; } PROCESSINFOCLASS;
@ -680,7 +686,7 @@ typedef struct _PEB
typedef struct _GDI_TEB_BATCH typedef struct _GDI_TEB_BATCH
{ {
ULONG Offset; ULONG Offset;
ULONG HDC; HANDLE HDC;
ULONG Buffer[0x136]; ULONG Buffer[0x136];
} GDI_TEB_BATCH, *PGDI_TEB_BATCH; } GDI_TEB_BATCH, *PGDI_TEB_BATCH;
@ -735,7 +741,11 @@ typedef struct _TEB
PVOID SystemReserved1[0x36]; PVOID SystemReserved1[0x36];
LONG ExceptionCode; LONG ExceptionCode;
struct _ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer; struct _ACTIVATION_CONTEXT_STACK *ActivationContextStackPointer;
#ifdef _WIN64
UCHAR SpareBytes1[24];
#else
UCHAR SpareBytes1[0x24]; UCHAR SpareBytes1[0x24];
#endif
ULONG TxFsContext; ULONG TxFsContext;
GDI_TEB_BATCH GdiTebBatch; GDI_TEB_BATCH GdiTebBatch;
CLIENT_ID RealClientId; CLIENT_ID RealClientId;
@ -743,9 +753,9 @@ typedef struct _TEB
ULONG GdiClientPID; ULONG GdiClientPID;
ULONG GdiClientTID; ULONG GdiClientTID;
PVOID GdiThreadLocalInfo; PVOID GdiThreadLocalInfo;
ULONG Win32ClientInfo[62]; SIZE_T Win32ClientInfo[62];
PVOID glDispatchTable[0xE9]; PVOID glDispatchTable[0xE9];
ULONG glReserved1[0x1D]; SIZE_T glReserved1[0x1D];
PVOID glReserved2; PVOID glReserved2;
PVOID glSectionInfo; PVOID glSectionInfo;
PVOID glSection; PVOID glSection;
@ -762,10 +772,17 @@ typedef struct _TEB
PVOID ReservedForNtRpc; PVOID ReservedForNtRpc;
PVOID DbgSsReserved[0x2]; PVOID DbgSsReserved[0x2];
ULONG HardErrorDisabled; ULONG HardErrorDisabled;
#ifdef _WIN64
PVOID Instrumentation[11];
#else
PVOID Instrumentation[9]; PVOID Instrumentation[9];
#endif
GUID ActivityId; GUID ActivityId;
PVOID SubProcessTag; PVOID SubProcessTag;
PVOID EtwTraceData; PVOID EtwTraceData;
#if (NTDDI_VERSION >= NTDDI_LONGHORN)
PVOID EtwLocalData;
#endif
PVOID WinSockData; PVOID WinSockData;
ULONG GdiBatchCount; ULONG GdiBatchCount;
#if (NTDDI_VERSION >= NTDDI_LONGHORN) #if (NTDDI_VERSION >= NTDDI_LONGHORN)

View file

@ -53,7 +53,9 @@ Author:
// //
#ifndef _MANAGED #ifndef _MANAGED
#if defined(_M_IX86) #if defined(_M_IX86)
#ifndef FASTCALL
#define FASTCALL _fastcall #define FASTCALL _fastcall
#endif
#else #else
#define FASTCALL #define FASTCALL
#endif #endif