X-Git-Url: http://git.jankratochvil.net/?p=reactos.git;a=blobdiff_plain;f=include%2Fnapi%2Fteb.h;h=701de83597252fc04c49cd3f3369255f5fc8e378;hp=0cf8beb489813d7342e950e5625ee72d2caef62c;hb=HEAD;hpb=7c0db166f81fbe8c8b913d7f26048e337d383605 diff --git a/include/napi/teb.h b/include/napi/teb.h index 0cf8beb..701de83 100644 --- a/include/napi/teb.h +++ b/include/napi/teb.h @@ -48,16 +48,16 @@ typedef struct _RTL_USER_PROCESS_PARAMETERS { } RTL_USER_PROCESS_PARAMETERS, *PRTL_USER_PROCESS_PARAMETERS; typedef struct _NT_TIB { - struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; // 00h - PVOID StackBase; // 04h - PVOID StackLimit; // 08h - PVOID SubSystemTib; // 0Ch + struct _EXCEPTION_REGISTRATION_RECORD* ExceptionList; /* 00h */ + PVOID StackBase; /* 04h */ + PVOID StackLimit; /* 08h */ + PVOID SubSystemTib; /* 0Ch */ union { - PVOID FiberData; // 10h - ULONG Version; // 10h + PVOID FiberData; /* 10h */ + ULONG Version; /* 10h */ } Fib; - PVOID ArbitraryUserPointer; // 14h - struct _NT_TIB *Self; // 18h + PVOID ArbitraryUserPointer; /* 14h */ + struct _NT_TIB *Self; /* 18h */ } NT_TIB, *PNT_TIB; #endif /* !__USE_W32API */ @@ -101,58 +101,58 @@ typedef VOID STDCALL_FUNC (*PPEBLOCKROUTINE)(PVOID); typedef struct _PEB { - UCHAR InheritedAddressSpace; // 00h - UCHAR ReadImageFileExecOptions; // 01h - UCHAR BeingDebugged; // 02h - UCHAR Spare; // 03h - PVOID Mutant; // 04h - PVOID ImageBaseAddress; // 08h - PPEB_LDR_DATA Ldr; // 0Ch - PRTL_USER_PROCESS_PARAMETERS ProcessParameters; // 10h - PVOID SubSystemData; // 14h - PVOID ProcessHeap; // 18h - PVOID FastPebLock; // 1Ch - PPEBLOCKROUTINE FastPebLockRoutine; // 20h - PPEBLOCKROUTINE FastPebUnlockRoutine; // 24h - ULONG EnvironmentUpdateCount; // 28h - PVOID* KernelCallbackTable; // 2Ch - PVOID EventLogSection; // 30h - PVOID EventLog; // 34h - PPEB_FREE_BLOCK FreeList; // 38h - ULONG TlsExpansionCounter; // 3Ch - PVOID TlsBitmap; // 40h - ULONG TlsBitmapBits[0x2]; // 44h - PVOID ReadOnlySharedMemoryBase; // 4Ch - PVOID ReadOnlySharedMemoryHeap; // 50h - PVOID* ReadOnlyStaticServerData; // 54h - PVOID AnsiCodePageData; // 58h - PVOID OemCodePageData; // 5Ch - PVOID UnicodeCaseTableData; // 60h - ULONG NumberOfProcessors; // 64h - ULONG NtGlobalFlag; // 68h - UCHAR Spare2[0x4]; // 6Ch - LARGE_INTEGER CriticalSectionTimeout; // 70h - ULONG HeapSegmentReserve; // 78h - ULONG HeapSegmentCommit; // 7Ch - ULONG HeapDeCommitTotalFreeThreshold; // 80h - ULONG HeapDeCommitFreeBlockThreshold; // 84h - ULONG NumberOfHeaps; // 88h - ULONG MaximumNumberOfHeaps; // 8Ch - PVOID** ProcessHeaps; // 90h - PVOID GdiSharedHandleTable; // 94h - PVOID ProcessStarterHelper; // 98h - PVOID GdiDCAttributeList; // 9Ch - PVOID LoaderLock; // A0h - ULONG OSMajorVersion; // A4h - ULONG OSMinorVersion; // A8h - USHORT OSBuildNumber; // ACh - UCHAR SPMajorVersion; // AEh - UCHAR SPMinorVersion; // AFh - ULONG OSPlatformId; // B0h - ULONG ImageSubSystem; // B4h - ULONG ImageSubSystemMajorVersion; // B8h - ULONG ImageSubSystemMinorVersion; // C0h - ULONG GdiHandleBuffer[0x22]; // C4h + UCHAR InheritedAddressSpace; /* 00h */ + UCHAR ReadImageFileExecOptions; /* 01h */ + UCHAR BeingDebugged; /* 02h */ + UCHAR Spare; /* 03h */ + PVOID Mutant; /* 04h */ + PVOID ImageBaseAddress; /* 08h */ + PPEB_LDR_DATA Ldr; /* 0Ch */ + PRTL_USER_PROCESS_PARAMETERS ProcessParameters; /* 10h */ + PVOID SubSystemData; /* 14h */ + PVOID ProcessHeap; /* 18h */ + PVOID FastPebLock; /* 1Ch */ + PPEBLOCKROUTINE FastPebLockRoutine; /* 20h */ + PPEBLOCKROUTINE FastPebUnlockRoutine; /* 24h */ + ULONG EnvironmentUpdateCount; /* 28h */ + PVOID* KernelCallbackTable; /* 2Ch */ + PVOID EventLogSection; /* 30h */ + PVOID EventLog; /* 34h */ + PPEB_FREE_BLOCK FreeList; /* 38h */ + ULONG TlsExpansionCounter; /* 3Ch */ + PVOID TlsBitmap; /* 40h */ + ULONG TlsBitmapBits[0x2]; /* 44h */ + PVOID ReadOnlySharedMemoryBase; /* 4Ch */ + PVOID ReadOnlySharedMemoryHeap; /* 50h */ + PVOID* ReadOnlyStaticServerData; /* 54h */ + PVOID AnsiCodePageData; /* 58h */ + PVOID OemCodePageData; /* 5Ch */ + PVOID UnicodeCaseTableData; /* 60h */ + ULONG NumberOfProcessors; /* 64h */ + ULONG NtGlobalFlag; /* 68h */ + UCHAR Spare2[0x4]; /* 6Ch */ + LARGE_INTEGER CriticalSectionTimeout; /* 70h */ + ULONG HeapSegmentReserve; /* 78h */ + ULONG HeapSegmentCommit; /* 7Ch */ + ULONG HeapDeCommitTotalFreeThreshold; /* 80h */ + ULONG HeapDeCommitFreeBlockThreshold; /* 84h */ + ULONG NumberOfHeaps; /* 88h */ + ULONG MaximumNumberOfHeaps; /* 8Ch */ + PVOID** ProcessHeaps; /* 90h */ + PVOID GdiSharedHandleTable; /* 94h */ + PVOID ProcessStarterHelper; /* 98h */ + PVOID GdiDCAttributeList; /* 9Ch */ + PVOID LoaderLock; /* A0h */ + ULONG OSMajorVersion; /* A4h */ + ULONG OSMinorVersion; /* A8h */ + USHORT OSBuildNumber; /* ACh */ + UCHAR SPMajorVersion; /* AEh */ + UCHAR SPMinorVersion; /* AFh */ + ULONG OSPlatformId; /* B0h */ + ULONG ImageSubSystem; /* B4h */ + ULONG ImageSubSystemMajorVersion; /* B8h */ + ULONG ImageSubSystemMinorVersion; /* C0h */ + ULONG GdiHandleBuffer[0x22]; /* C4h */ } PEB; #ifndef __USE_W32API @@ -170,62 +170,66 @@ typedef struct _GDI_TEB_BATCH typedef struct _TEB { - NT_TIB Tib; // 00h - PVOID EnvironmentPointer; // 1Ch - CLIENT_ID Cid; // 20h - PVOID ActiveRpcInfo; // 28h - PVOID ThreadLocalStoragePointer; // 2Ch - PPEB Peb; // 30h - ULONG LastErrorValue; // 34h - ULONG CountOfOwnedCriticalSections; // 38h - PVOID CsrClientThread; // 3Ch - struct _W32THREAD* Win32ThreadInfo; // 40h - ULONG Win32ClientInfo[0x1F]; // 44h - PVOID WOW32Reserved; // C0h - ULONG CurrentLocale; // C4h - ULONG FpSoftwareStatusRegister; // C8h - PVOID SystemReserved1[0x36]; // CCh - PVOID Spare1; // 1A4h - LONG ExceptionCode; // 1A8h - UCHAR SpareBytes1[0x28]; // 1ACh - PVOID SystemReserved2[0xA]; // 1D4h - GDI_TEB_BATCH GdiTebBatch; // 1FCh - ULONG gdiRgn; // 6DCh - ULONG gdiPen; // 6E0h - ULONG gdiBrush; // 6E4h - CLIENT_ID RealClientId; // 6E8h - PVOID GdiCachedProcessHandle; // 6F0h - ULONG GdiClientPID; // 6F4h - ULONG GdiClientTID; // 6F8h - PVOID GdiThreadLocaleInfo; // 6FCh - PVOID UserReserved[5]; // 700h - PVOID glDispatchTable[0x118]; // 714h - ULONG glReserved1[0x1A]; // B74h - PVOID glReserved2; // BDCh - PVOID glSectionInfo; // BE0h - PVOID glSection; // BE4h - PVOID glTable; // BE8h - PVOID glCurrentRC; // BECh - PVOID glContext; // BF0h - NTSTATUS LastStatusValue; // BF4h - UNICODE_STRING StaticUnicodeString; // BF8h - WCHAR StaticUnicodeBuffer[0x105]; // C00h - PVOID DeallocationStack; // E0Ch - PVOID TlsSlots[0x40]; // E10h - LIST_ENTRY TlsLinks; // F10h - PVOID Vdm; // F18h - PVOID ReservedForNtRpc; // F1Ch - PVOID DbgSsReserved[0x2]; // F20h - ULONG HardErrorDisabled; // F28h - PVOID Instrumentation[0x10]; // F2Ch - PVOID WinSockData; // F6Ch - ULONG GdiBatchCount; // F70h - ULONG Spare2; // F74h // NOTE: RtlExitUserThread writes something here - ULONG Spare3; // F78h - ULONG Spare4; // F7Ch - PVOID ReservedForOle; // F80h - ULONG WaitingOnLoaderLock; // F84h - PVOID WineDebugInfo; // Needed for WINE DLL's + NT_TIB Tib; /* 00h */ + PVOID EnvironmentPointer; /* 1Ch */ + CLIENT_ID Cid; /* 20h */ + PVOID ActiveRpcInfo; /* 28h */ + PVOID ThreadLocalStoragePointer; /* 2Ch */ + PPEB Peb; /* 30h */ + ULONG LastErrorValue; /* 34h */ + ULONG CountOfOwnedCriticalSections; /* 38h */ + PVOID CsrClientThread; /* 3Ch */ + struct _W32THREAD* Win32ThreadInfo; /* 40h */ + ULONG Win32ClientInfo[0x1F]; /* 44h */ + PVOID WOW32Reserved; /* C0h */ + ULONG CurrentLocale; /* C4h */ + ULONG FpSoftwareStatusRegister; /* C8h */ + PVOID SystemReserved1[0x36]; /* CCh */ + PVOID Spare1; /* 1A4h */ + LONG ExceptionCode; /* 1A8h */ + UCHAR SpareBytes1[0x28]; /* 1ACh */ + PVOID SystemReserved2[0xA]; /* 1D4h */ + GDI_TEB_BATCH GdiTebBatch; /* 1FCh */ + ULONG gdiRgn; /* 6DCh */ + ULONG gdiPen; /* 6E0h */ + ULONG gdiBrush; /* 6E4h */ + CLIENT_ID RealClientId; /* 6E8h */ + PVOID GdiCachedProcessHandle; /* 6F0h */ + ULONG GdiClientPID; /* 6F4h */ + ULONG GdiClientTID; /* 6F8h */ + PVOID GdiThreadLocaleInfo; /* 6FCh */ + PVOID UserReserved[5]; /* 700h */ + PVOID glDispatchTable[0x118]; /* 714h */ + ULONG glReserved1[0x1A]; /* B74h */ + PVOID glReserved2; /* BDCh */ + PVOID glSectionInfo; /* BE0h */ + PVOID glSection; /* BE4h */ + PVOID glTable; /* BE8h */ + PVOID glCurrentRC; /* BECh */ + PVOID glContext; /* BF0h */ + NTSTATUS LastStatusValue; /* BF4h */ + UNICODE_STRING StaticUnicodeString; /* BF8h */ + WCHAR StaticUnicodeBuffer[0x105]; /* C00h */ + PVOID DeallocationStack; /* E0Ch */ + PVOID TlsSlots[0x40]; /* E10h */ + LIST_ENTRY TlsLinks; /* F10h */ + PVOID Vdm; /* F18h */ + PVOID ReservedForNtRpc; /* F1Ch */ + PVOID DbgSsReserved[0x2]; /* F20h */ + ULONG HardErrorDisabled; /* F28h */ + PVOID Instrumentation[0x10]; /* F2Ch */ + PVOID WinSockData; /* F6Ch */ + ULONG GdiBatchCount; /* F70h */ + USHORT Spare2; /* F74h */ + BOOLEAN IsFiber; /* F76h */ + UCHAR Spare3; /* F77h */ + ULONG Spare4; /* F78h */ + ULONG Spare5; /* F7Ch */ + PVOID ReservedForOle; /* F80h */ + ULONG WaitingOnLoaderLock; /* F84h */ + ULONG Unknown[11]; /* F88h */ + PVOID FlsSlots; /* FB4h */ + PVOID WineDebugInfo; /* Needed for WINE DLL's */ } TEB, *PTEB; /* FIXME: at least NtCurrentTeb should be defined in winnt.h */ @@ -234,10 +238,6 @@ typedef struct _TEB #if defined(_M_IX86) /* on the x86, the TEB is contained in the FS segment */ -/* - FIXME: GCC should allow defining a variable that directly maps to a register. - It could make for even faster code -*/ static inline struct _TEB * NtCurrentTeb(void) { struct _TEB * pTeb;