Index: chrome_frame/crash_reporting/nt_loader.h |
diff --git a/chrome_frame/crash_reporting/nt_loader.h b/chrome_frame/crash_reporting/nt_loader.h |
deleted file mode 100644 |
index c7512158fc8cc887d4fe48c9c0e91078a5ef1494..0000000000000000000000000000000000000000 |
--- a/chrome_frame/crash_reporting/nt_loader.h |
+++ /dev/null |
@@ -1,175 +0,0 @@ |
-// Copyright (c) 2009 The Chromium Authors. All rights reserved. |
-// Use of this source code is governed by a BSD-style license that can be |
-// found in the LICENSE file. |
-#ifndef CHROME_FRAME_NT_LOADER_H_ |
-#define CHROME_FRAME_NT_LOADER_H_ |
- |
-#include <windows.h> |
-#include <winnt.h> |
-#include <winternl.h> |
- |
-namespace nt_loader { |
- |
-// These structures are gleaned from public symbol information. |
-struct _PEB; |
-struct _PEB_LDR_DATA; |
-struct _RTL_USER_PROCESS_PARAMETERS; |
-struct _PEB_FREE_BLOCK; |
- |
- |
-typedef struct _NT_TIB { |
- _EXCEPTION_REGISTRATION_RECORD* ExceptionList; // 0x000 |
- void *StackBase; // 0x004 |
- void* StackLimit; // 0x008 |
- void* SubSystemTib; // 0x00c |
- union { |
- void *FiberData; // 0x010 |
- DWORD Version; // 0x010 |
- }; |
- void* ArbitraryUserPointer; // 0x014 |
- _NT_TIB* Self; // 0x018 |
-} _NT_TIB, NT_TIB; |
- |
-typedef struct _CLIENT_ID { |
- void* UniqueProcess; // 0x000 |
- void* UniqueThread; // 0x004 |
-} _CLIENT_ID, CLIENT_ID; |
- |
-typedef struct _TEB { |
- _NT_TIB NtTib; // 0x000 |
- void* EnvironmentPointer; // 0x01c |
- _CLIENT_ID ClientId; // 0x020 |
- void* ActiveRpcHandle; // 0x028 |
- void* ThreadLocalStoragePointer; // 0x02c |
- _PEB* ProcessEnvironmentBlock; // 0x030 |
- // There is more in a TEB, but this is all we need. |
-} _TEB, TEB; |
- |
-typedef struct _PEB { |
- BYTE InheritedAddressSpace; // 0x000 |
- BYTE ReadImageFileExecOptions; // 0x001 |
- BYTE BeingDebugged; // 0x002 |
- BYTE SpareBool; // 0x003 |
- void* Mutant; // 0x004 |
- void* ImageBaseAddress; // 0x008 |
- _PEB_LDR_DATA* Ldr; // 0x00c |
- _RTL_USER_PROCESS_PARAMETERS* ProcessParameters; // 0x010 |
- void* SubSystemData; // 0x014 |
- void* ProcessHeap; // 0x018 |
- _RTL_CRITICAL_SECTION* FastPebLock; // 0x01c |
- void* FastPebLockRoutine; // 0x020 |
- void* FastPebUnlockRoutine; // 0x024 |
- ULONG EnvironmentUpdateCount; // 0x028 |
- void* KernelCallbackTable; // 0x02c |
- ULONG SystemReserved[1]; // 0x030 |
- ULONG AtlThunkSListPtr32; // 0x034 |
- _PEB_FREE_BLOCK* FreeList; // 0x038 |
- ULONG TlsExpansionCounter; // 0x03c |
- void* TlsBitmap; // 0x040 |
- ULONG TlsBitmapBits[2]; // 0x044 |
- void* ReadOnlySharedMemoryBase; // 0x04c |
- void* ReadOnlySharedMemoryHeap; // 0x050 |
- void** ReadOnlyStaticServerData; // 0x054 |
- void* AnsiCodePageData; // 0x058 |
- void* OemCodePageData; // 0x05c |
- void* UnicodeCaseTableData; // 0x060 |
- ULONG NumberOfProcessors; // 0x064 |
- ULONG NtGlobalFlag; // 0x068 |
- _LARGE_INTEGER CriticalSectionTimeout; // 0x070 |
- ULONG HeapSegmentReserve; // 0x078 |
- ULONG HeapSegmentCommit; // 0x07c |
- ULONG HeapDeCommitTotalFreeThreshold; // 0x080 |
- ULONG HeapDeCommitFreeBlockThreshold; // 0x084 |
- ULONG NumberOfHeaps; // 0x088 |
- ULONG MaximumNumberOfHeaps; // 0x08c |
- void** ProcessHeaps; // 0x090 |
- void* GdiSharedHandleTable; // 0x094 |
- void* ProcessStarterHelper; // 0x098 |
- ULONG GdiDCAttributeList; // 0x09c |
- RTL_CRITICAL_SECTION* LoaderLock; // 0x0a0 |
- // There is more in a PEB, but this is all we need. |
-} _PEB, PEB; |
- |
-struct _PEB_LDR_DATA { |
- ULONG Length; // 0x000 |
- BYTE Initialized; // 0x004 |
- void* SsHandle; // 0x008 |
- LIST_ENTRY InLoadOrderModuleList; // 0x00c |
- LIST_ENTRY InMemoryOrderModuleList; // 0x014 |
- LIST_ENTRY InInitializationOrderModuleList; // 0x01c |
- // There is more data in this structure, but this is all we need. |
-}; |
- |
-// These flags are gleaned from the !dlls Windbg extension. |
-#define LDRP_STATIC_LINK 0x00000002 |
-#define LDRP_IMAGE_DLL 0x00000004 |
-#define LDRP_LOAD_IN_PROGRESS 0x00001000 |
-#define LDRP_UNLOAD_IN_PROGRESS 0x00002000 |
-#define LDRP_ENTRY_PROCESSED 0x00004000 |
-#define LDRP_DONT_CALL_FOR_THREADS 0x00040000 |
-#define LDRP_PROCESS_ATTACH_CALLED 0x00080000 |
-#define LDRP_COR_IMAGE 0x00400000 |
-#define LDRP_COR_OWNS_UNMAP 0x00800000 |
-#define LDRP_COR_IL_ONLY 0x01000000 |
-#define LDRP_REDIRECTED 0x10000000 |
- |
-typedef struct _LDR_DATA_TABLE_ENTRY { |
- LIST_ENTRY InLoadOrderLinks; // 0x000 |
- LIST_ENTRY InMemoryOrderLinks; // 0x008 |
- LIST_ENTRY InInitializationOrderLinks; // 0x010 |
- void* DllBase; // 0x018 |
- void* EntryPoint; // 0x01c |
- ULONG SizeOfImage; // 0x020 |
- UNICODE_STRING FullDllName; // 0x024 |
- UNICODE_STRING BaseDllName; // 0x02c |
- ULONG Flags; // 0x034 |
- USHORT LoadCount; // 0x038 |
- USHORT TlsIndex; // 0x03a |
- union { |
- LIST_ENTRY HashLinks; // 0x03c |
- struct { |
- void* SectionPointer; // 0x03c |
- ULONG CheckSum; // 0x040 |
- }; |
- }; |
- union { |
- ULONG TimeDateStamp; // 0x044 |
- void* LoadedImports; // 0x044 |
- }; |
- void *EntryPointActivationContext; // 0x048 |
- void* PatchInformation; // 0x04c |
-} _LDR_DATA_TABLE_ENTRY, LDR_DATA_TABLE_ENTRY; |
- |
-// Retrieves the current thread's TEB. |
-inline TEB* GetCurrentTeb() { |
- return reinterpret_cast<TEB*>(NtCurrentTeb()); |
-} |
- |
-// Retrieves the current process' PEB. |
-inline PEB* GetCurrentPeb() { |
- return GetCurrentTeb()->ProcessEnvironmentBlock; |
-} |
- |
-// Returns true iff the current thread owns critsec. |
-inline bool OwnsCriticalSection(CRITICAL_SECTION* critsec) { |
- return reinterpret_cast<DWORD>(critsec->OwningThread) == |
- GetCurrentThreadId(); |
-} |
- |
-// Finds a loader table entry for module. |
-// Note: must hold the loader's lock on entry. |
-LDR_DATA_TABLE_ENTRY* GetLoaderEntry(HMODULE module); |
- |
-// Returns the loader's lock. |
-inline CRITICAL_SECTION* GetLoaderLock() { |
- return GetCurrentPeb()->LoaderLock; |
-} |
- |
-// Returns true iff the current thread owns the loader's lock on call. |
-inline bool OwnsLoaderLock() { |
- return OwnsCriticalSection(GetLoaderLock()); |
-} |
- |
-} // namespace nt_loader |
- |
-#endif // CHROME_FRAME_NT_LOADER_H_ |