Source code of Windows XP (NT5)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
1.5 KiB

  1. #ifndef __UTILFUN_H__
  2. #define __UTILFUN_H__
  3. //
  4. //
  5. // attempt to imitate the std::tree structures
  6. //
  7. class _BRN {
  8. public:
  9. _BRN * _Left;
  10. _BRN * _Parent;
  11. _BRN * _Right;
  12. ULONG_PTR Values[3]; // Key Value Color
  13. };
  14. class _BRN_HEAD {
  15. public:
  16. _BRN * _Left;
  17. _BRN * _Parent;
  18. _BRN * _Right;
  19. };
  20. class _QM {
  21. public:
  22. _BRN * _Left;
  23. _BRN * _Parent;
  24. _BRN * _Right;
  25. };
  26. class _Map {
  27. public:
  28. ULONG_PTR Unused;
  29. _QM * pQm;
  30. bool b;
  31. ULONG_PTR Size;
  32. };
  33. //
  34. //
  35. //
  36. class _Node_List {
  37. public:
  38. _Node_List * _Next;
  39. _Node_List * _Prev;
  40. void * _Value;
  41. };
  42. class _List {
  43. public:
  44. void * _Allocator;
  45. _Node_List * _Head;
  46. SIZE_T _Size;
  47. };
  48. class _Vector{
  49. public:
  50. void * _Allocator;
  51. void * _First;
  52. void * _Last;
  53. void * _End;
  54. };
  55. typedef DWORD (WINAPI * pfnCallBack1)(VOID * pData1);
  56. typedef DWORD (WINAPI * pfnCallBack2)(VOID * pData1,VOID * pData2);
  57. void
  58. PrintMapCB(_Map * pMap,BOOL Verbose, pfnCallBack2 CallBack);
  59. void
  60. PrintMap(_Map * pMap,BOOL Verbose);
  61. DWORD
  62. CallBackObj(void * pKey, void * pValue);
  63. void
  64. PrintListCB(_List * pList_OOP, pfnCallBack1 CallBack);
  65. BOOL
  66. GetVTable(MEMORY_ADDRESS pThis_OOP);
  67. void
  68. EnumReverseLinkedListCB(IN LIST_ENTRY * pListHead,
  69. IN DWORD cbSizeOfStructure,
  70. IN DWORD cbListEntryOffset,
  71. IN pfnCallBack2 CallBack);
  72. //
  73. // For Dumping CThreadRecord
  74. //
  75. typedef DWORD (WINAPI * pfnDumpRequest)(ULONG_PTR pRequest);
  76. #endif /*__UTILFUN_H__*/