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.

66 lines
1.5 KiB

  1. #pragma once
  2. #include "sxstypes.h"
  3. #define DUMPACTCTX_HEADER (0x00000001)
  4. #define DUMPACTCTX_DATA (0x00000002)
  5. #define DUMPACTCTXDATA_FLAG_FULL (0x00010000)
  6. #define NUMBER_OF(x) ( (sizeof(x) / sizeof(*x) ) )
  7. typedef struct PRIVATE_ACTIVATION_CONTEXT {
  8. LONG RefCount;
  9. ULONG Flags;
  10. ULONG64 ActivationContextData; // _ACTIVATION_CONTEXT_DATA
  11. ULONG64 NotificationRoutine; // PACTIVATION_CONTEXT_NOTIFY_ROUTINE
  12. ULONG64 NotificationContext;
  13. ULONG SentNotifications[8];
  14. ULONG DisabledNotifications[8];
  15. ULONG64 StorageMap; // ASSEMBLY_STORAGE_MAP
  16. PVOID InlineStorageMapEntries[32]; // PASSEMBLY_STORAGE_MAP_ENTRY
  17. } PRIVATE_ACTIVATION_CONTEXT;
  18. // then the unicode string struct is probably not defined either
  19. typedef struct _UNICODE_STRING {
  20. USHORT Length;
  21. USHORT MaximumLength;
  22. PWSTR Buffer;
  23. } UNICODE_STRING, *PUNICODE_STRING;
  24. BOOL
  25. DumpActivationContextStackFrame(
  26. PCSTR pcsLineHeader,
  27. ULONG64 ulStackFrameAddress,
  28. ULONG ulDepth,
  29. DWORD dwFlags
  30. );
  31. BOOL
  32. DumpActCtxData(
  33. PCSTR LineHeader,
  34. const ULONG64 ActCtxDataAddressInDebugeeSpace,
  35. ULONG ulFlags
  36. );
  37. BOOL
  38. DumpActCtx(
  39. const ULONG64 ActCtxAddressInDebugeeSpace,
  40. ULONG ulFlags
  41. );
  42. BOOL
  43. GetActiveActivationContextData(
  44. PULONG64 pulActiveActCtx
  45. );
  46. BOOL
  47. DumpActCtxStackFullStack(
  48. ULONG64 ulFirstStackFramePointer
  49. );
  50. VOID
  51. DbgExtPrintActivationContextData(
  52. BOOL fFull,
  53. PCACTIVATION_CONTEXT_DATA Data,
  54. PCWSTR rbuffPLP
  55. );