https://git.reactos.org/?p=reactos.git;a=commitdiff;h=01dc54056f0a62586794d290f414a3ff7fc9203a

commit 01dc54056f0a62586794d290f414a3ff7fc9203a
Author:     Mark Jansen <[email protected]>
AuthorDate: Mon Apr 13 23:37:25 2020 +0200
Commit:     Mark Jansen <[email protected]>
CommitDate: Sun Apr 26 13:44:01 2020 +0200

    [NDK] Add STACK_TRACE_DATABASE definition
---
 sdk/include/ndk/rtltypes.h | 39 ++++++++++++++++++++++++++++++++++++++-
 1 file changed, 38 insertions(+), 1 deletion(-)

diff --git a/sdk/include/ndk/rtltypes.h b/sdk/include/ndk/rtltypes.h
index 42178ec0f7a..3ceade4b02d 100644
--- a/sdk/include/ndk/rtltypes.h
+++ b/sdk/include/ndk/rtltypes.h
@@ -1736,11 +1736,48 @@ typedef struct _RTL_STACK_TRACE_ENTRY
     PVOID BackTrace[32];
 } RTL_STACK_TRACE_ENTRY, *PRTL_STACK_TRACE_ENTRY;
 
+
 typedef struct _STACK_TRACE_DATABASE
 {
-    RTL_CRITICAL_SECTION CriticalSection;
+    union
+    {
+        PVOID Lock;
+
+        /* Padding for ERESOURCE */
+#if defined(_M_AMD64)
+        UCHAR Padding[0x68];
+#else
+        UCHAR Padding[56];
+#endif
+    } Lock;
+
+    BOOLEAN DumpInProgress;
+
+    PVOID CommitBase;
+    PVOID CurrentLowerCommitLimit;
+    PVOID CurrentUpperCommitLimit;
+
+    PCHAR NextFreeLowerMemory;
+    PCHAR NextFreeUpperMemory;
+
+    ULONG NumberOfEntriesAdded;
+    ULONG NumberOfAllocationFailures;
+    PRTL_STACK_TRACE_ENTRY* EntryIndexArray;
+
+    ULONG NumberOfBuckets;
+    PRTL_STACK_TRACE_ENTRY Buckets[ANYSIZE_ARRAY];
 } STACK_TRACE_DATABASE, *PSTACK_TRACE_DATABASE;
 
+// Validate that our padding is big enough:
+#ifndef NTOS_MODE_USER
+#if defined(_M_AMD64)
+C_ASSERT(sizeof(ERESOURCE) <= 0x68);
+#else
+C_ASSERT(sizeof(ERESOURCE) <= 56);
+#endif
+#endif
+
+
 //
 // Trace Database
 //

Reply via email to