Leaked source code of windows server 2003
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.

149 lines
3.3 KiB

  1. /*++
  2. Copyright (c) 1992-2000 Microsoft Corporation
  3. Module Name:
  4. kdextsfn.h
  5. Abstract:
  6. This has definitions for info exported by kdexts.dll.
  7. Environment:
  8. User Mode.
  9. Revision History:
  10. Kshitiz K. Sharma (kksharma) 2/14/2001
  11. --*/
  12. #ifndef _KDEXTSFN_H
  13. #define _KDEXTSFN_H
  14. //
  15. // device.c
  16. //
  17. typedef struct _DEBUG_DEVICE_OBJECT_INFO {
  18. ULONG SizeOfStruct; // must be == sizeof(DEBUG_DEVICE_OBJECT_INFO)
  19. ULONG64 DevObjAddress;
  20. ULONG ReferenceCount;
  21. BOOL QBusy;
  22. ULONG64 DriverObject;
  23. ULONG64 CurrentIrp;
  24. ULONG64 DevExtension;
  25. ULONG64 DevObjExtension;
  26. } DEBUG_DEVICE_OBJECT_INFO, *PDEBUG_DEVICE_OBJECT_INFO;
  27. // GetDevObjInfo
  28. typedef HRESULT
  29. (WINAPI *PGET_DEVICE_OBJECT_INFO)(
  30. IN PDEBUG_CLIENT Client,
  31. IN ULONG64 DeviceObject,
  32. OUT PDEBUG_DEVICE_OBJECT_INFO pDevObjInfo);
  33. //
  34. // driver.c
  35. //
  36. typedef struct _DEBUG_DRIVER_OBJECT_INFO {
  37. ULONG SizeOfStruct; // must be == sizef(DEBUG_DRIVER_OBJECT_INFO)
  38. ULONG DriverSize;
  39. ULONG64 DriverObjAddress;
  40. ULONG64 DriverStart;
  41. ULONG64 DriverExtension;
  42. ULONG64 DeviceObject;
  43. UNICODE_STRING64 DriverName;
  44. } DEBUG_DRIVER_OBJECT_INFO, *PDEBUG_DRIVER_OBJECT_INFO;
  45. // GetDrvObjInfo
  46. typedef HRESULT
  47. (WINAPI *PGET_DRIVER_OBJECT_INFO)(
  48. IN PDEBUG_CLIENT Client,
  49. IN ULONG64 DriverObject,
  50. OUT PDEBUG_DRIVER_OBJECT_INFO pDrvObjInfo);
  51. //
  52. // irp.c
  53. //
  54. typedef struct _DEBUG_IRP_STACK_INFO {
  55. UCHAR Major;
  56. UCHAR Minor;
  57. ULONG64 DeviceObject;
  58. ULONG64 FileObject;
  59. ULONG64 CompletionRoutine;
  60. ULONG64 StackAddress;
  61. } DEBUG_IRP_STACK_INFO, *PDEBUG_IRP_STACK_INFO;
  62. typedef struct _DEBUG_IRP_INFO {
  63. ULONG SizeOfStruct; // Must be == sizeof(DEBUG_IRP_INFO)
  64. ULONG64 IrpAddress;
  65. ULONG StackCount;
  66. ULONG CurrentLocation;
  67. ULONG64 MdlAddress;
  68. ULONG64 Thread;
  69. ULONG64 CancelRoutine;
  70. DEBUG_IRP_STACK_INFO CurrentStack;
  71. } DEBUG_IRP_INFO, *PDEBUG_IRP_INFO;
  72. // GetIrpInfo
  73. typedef HRESULT
  74. (WINAPI * PGET_IRP_INFO)(
  75. IN PDEBUG_CLIENT Client,
  76. IN ULONG64 Irp,
  77. OUT PDEBUG_IRP_INFO IrpInfo
  78. );
  79. //
  80. // pool.c
  81. //
  82. typedef struct _DEBUG_POOL_DATA {
  83. ULONG SizeofStruct;
  84. ULONG64 PoolBlock;
  85. ULONG64 Pool;
  86. ULONG PreviousSize;
  87. ULONG Size;
  88. ULONG PoolTag;
  89. ULONG64 ProcessBilled;
  90. ULONG Free:1;
  91. ULONG LargePool:1;
  92. ULONG SpecialPool:1;
  93. ULONG Pageable:1;
  94. ULONG Protected:1;
  95. ULONG Allocated:1;
  96. ULONG Reserved:26;
  97. ULONG64 Reserved2[4];
  98. CHAR PoolTagDescription[64];
  99. } DEBUG_POOL_DATA, *PDEBUG_POOL_DATA;
  100. // GetPoolData
  101. typedef HRESULT
  102. (WINAPI *PGET_POOL_DATA)(
  103. PDEBUG_CLIENT Client,
  104. ULONG64 Pool,
  105. PDEBUG_POOL_DATA PoolData
  106. );
  107. typedef enum _DEBUG_POOL_REGION {
  108. DbgPoolRegionUnknown,
  109. DbgPoolRegionSpecial,
  110. DbgPoolRegionPaged,
  111. DbgPoolRegionNonPaged,
  112. DbgPoolRegionCode,
  113. DbgPoolRegionNonPagedExpansion,
  114. DbgPoolRegionMax,
  115. } DEBUG_POOL_REGION;
  116. // GetPoolRegion
  117. typedef HRESULT
  118. (WINAPI *PGET_POOL_REGION)(
  119. PDEBUG_CLIENT Client,
  120. ULONG64 Pool,
  121. DEBUG_POOL_REGION *PoolRegion
  122. );
  123. #endif // _KDEXTSFN_H