ReactOS Fundraising Campaign 2012
 
€ 4,410 / € 30,000

Information | Donate

Home | Info | Community | Development | myReactOS | Contact Us

  1. Home
  2. Community
  3. Development
  4. myReactOS
  5. Fundraiser 2012

  1. Main Page
  2. Alphabetical List
  3. Data Structures
  4. Directories
  5. File List
  6. Data Fields
  7. Globals
  8. Related Pages

ReactOS Development > Doxygen

gdidebug.h
Go to the documentation of this file.
00001 #pragma once
00002 
00003 typedef enum _LOG_EVENT_TYPE
00004 {
00005     EVENT_ALLOCATE,
00006     EVENT_CREATE_HANDLE,
00007     EVENT_REFERENCE,
00008     EVENT_DEREFERENCE,
00009     EVENT_LOCK,
00010     EVENT_UNLOCK,
00011     EVENT_DELETE,
00012     EVENT_FREE,
00013     EVENT_SET_OWNER,
00014 } LOG_EVENT_TYPE;
00015 
00016 typedef struct _LOGENTRY
00017 {
00018     SLIST_ENTRY sleLink;
00019     LOG_EVENT_TYPE nEventType;
00020     DWORD dwProcessId;
00021     DWORD dwThreadId;
00022     ULONG ulUnique;
00023     LPARAM lParam;
00024     PVOID apvBackTrace[20];
00025     union
00026     {
00027         ULONG_PTR data1;
00028     } data;
00029 } LOGENTRY, *PLOGENTRY;
00030 
00031 #if DBG_ENABLE_EVENT_LOGGING
00032 VOID NTAPI DbgDumpEventList(PSLIST_HEADER pslh);
00033 VOID NTAPI DbgLogEvent(PSLIST_HEADER pslh, LOG_EVENT_TYPE nEventType, LPARAM lParam);
00034 VOID NTAPI DbgCleanupEventList(PSLIST_HEADER pslh);
00035 #define DBG_LOGEVENT(pslh, type, val) DbgLogEvent(pslh, type, (ULONG_PTR)val)
00036 #define DBG_INITLOG(pslh) InitializeSListHead(pslh)
00037 #define DBG_DUMP_EVENT_LIST(pslh) DbgDumpEventList(pslh)
00038 #define DBG_CLEANUP_EVENT_LIST(pslh) DbgCleanupEventList(pslh)
00039 #else
00040 #define DBG_LOGEVENT(pslh, type, val)
00041 #define DBG_INITLOG(pslh)
00042 #define DBG_DUMP_EVENT_LIST(pslh)
00043 #define DBG_CLEANUP_EVENT_LIST(pslh)
00044 #endif
00045 
00046 
00047 VOID NTAPI DbgDumpGdiHandleTable(VOID);
00048 ULONG NTAPI DbgCaptureStackBackTace(PVOID* pFrames, ULONG nFramesToCapture);
00049 BOOL NTAPI DbgGdiHTIntegrityCheck(VOID);
00050 VOID NTAPI DbgDumpLockedGdiHandles(VOID);
00051 
00052 #define KeRosDumpStackFrames(Frames, Count) KdSystemDebugControl('DsoR', (PVOID)Frames, Count, NULL, 0, NULL, KernelMode)
00053 NTSYSAPI ULONG APIENTRY RtlWalkFrameChain(OUT PVOID *Callers, IN ULONG Count, IN ULONG Flags);
00054 
00055 #if DBG
00056 void
00057 NTAPI
00058 GdiDbgPreServiceHook(ULONG ulSyscallId, PULONG_PTR pulArguments);
00059 
00060 ULONG_PTR
00061 NTAPI
00062 GdiDbgPostServiceHook(ULONG ulSyscallId, ULONG_PTR ulResult);
00063 
00064 #define ID_Win32PreServiceHook 'WSH0'
00065 #define ID_Win32PostServiceHook 'WSH1'
00066 
00067 FORCEINLINE void
00068 GdiDbgAssertNoLocks(char * pszFile, ULONG nLine)
00069 {
00070     PTHREADINFO pti = (PTHREADINFO)PsGetCurrentThreadWin32Thread();
00071     if (pti && pti->cExclusiveLocks != 0)
00072     {
00073         DbgPrint("(%s:%ld) There are %ld exclusive locks!\n",
00074                  pszFile, nLine, pti->cExclusiveLocks);
00075         ASSERT(FALSE);
00076     }
00077 }
00078 
00079 #define ASSERT_NOGDILOCKS() GdiDbgAssertNoLocks(__FILE__,__LINE__)
00080 #else
00081 #define ASSERT_NOGDILOCKS()
00082 #endif
00083 

Generated on Sat May 26 2012 04:37:14 for ReactOS by doxygen 1.7.6.1

ReactOS is a registered trademark or a trademark of ReactOS Foundation in the United States and other countries.