diff --git a/sdk/include/ndk/pstypes.h b/sdk/include/ndk/pstypes.h index f23c01ffa8e..3dfc5167a27 100644 --- a/sdk/include/ndk/pstypes.h +++ b/sdk/include/ndk/pstypes.h @@ -1546,7 +1546,6 @@ typedef struct _EPROCESS // // Job Token Filter Data // -#include typedef struct _PS_JOB_TOKEN_FILTER { ULONG CapturedSidCount; @@ -1617,7 +1616,6 @@ typedef struct _EJOB ULONG MemberLevel; ULONG JobFlags; } EJOB, *PEJOB; -#include // // Job Information Structures for NtQueryInformationJobObject diff --git a/sdk/include/ndk/rtltypes.h b/sdk/include/ndk/rtltypes.h index 9cc99a4a99b..8dc8551f0ef 100644 --- a/sdk/include/ndk/rtltypes.h +++ b/sdk/include/ndk/rtltypes.h @@ -1788,7 +1788,7 @@ typedef struct _STACK_TRACE_DATABASE PVOID Lock; /* Padding for ERESOURCE */ -#if defined(_M_AMD64) +#ifdef _WIN64 UCHAR Padding[0x68]; #else UCHAR Padding[56]; @@ -1814,9 +1814,7 @@ typedef struct _STACK_TRACE_DATABASE // Validate that our padding is big enough: #ifndef NTOS_MODE_USER -#if defined(_M_AMD64) -C_ASSERT(sizeof(ERESOURCE) <= 0x68); -#elif defined(_M_ARM64) +#ifdef _WIN64 C_ASSERT(sizeof(ERESOURCE) <= 0x68); #else C_ASSERT(sizeof(ERESOURCE) <= 56); diff --git a/sdk/lib/rtl/heap.c b/sdk/lib/rtl/heap.c index b38f4c93e3b..fb037844cae 100644 --- a/sdk/lib/rtl/heap.c +++ b/sdk/lib/rtl/heap.c @@ -196,12 +196,12 @@ RtlpInitializeHeap(OUT PHEAP Heap, /* Initialise the Heap alignment info */ if (Flags & HEAP_CREATE_ALIGN_16) { - Heap->AlignMask = (ULONG) ~15; + Heap->AlignMask = ~(ULONG_PTR)15; Heap->AlignRound = 15 + sizeof(HEAP_ENTRY); } else { - Heap->AlignMask = (ULONG) ~(sizeof(HEAP_ENTRY) - 1); + Heap->AlignMask = ~(ULONG_PTR)(sizeof(HEAP_ENTRY) - 1); Heap->AlignRound = 2 * sizeof(HEAP_ENTRY) - 1; } diff --git a/sdk/lib/rtl/heap.h b/sdk/lib/rtl/heap.h index 1f0b5436011..7843ee4c9a6 100644 --- a/sdk/lib/rtl/heap.h +++ b/sdk/lib/rtl/heap.h @@ -77,7 +77,7 @@ RtlpHeapIsSpecial(ULONG Flags) /* Heap structures */ struct _HEAP_COMMON_ENTRY { -#ifdef _M_AMD64 +#ifdef _WIN64 PVOID PreviousBlockPrivateData; #endif union @@ -90,7 +90,7 @@ struct _HEAP_COMMON_ENTRY }; struct { -#ifndef _M_AMD64 +#ifndef _WIN64 PVOID SubSegmentCode; #else ULONG SubSegmentCodeDummy; @@ -139,8 +139,16 @@ typedef struct _HEAP_ENTRY #ifdef _WIN64 C_ASSERT(sizeof(HEAP_ENTRY) == 16); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, Size) == 8); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, Flags) == 10); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, PreviousSize) == 12); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, UnusedBytes) == 15); #else C_ASSERT(sizeof(HEAP_ENTRY) == 8); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, Size) == 0); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, Flags) == 2); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, PreviousSize) == sizeof(PVOID)); +C_ASSERT(FIELD_OFFSET(HEAP_ENTRY, UnusedBytes) == sizeof(PVOID) + 3); #endif C_ASSERT((1 << HEAP_ENTRY_SHIFT) == sizeof(HEAP_ENTRY)); C_ASSERT((2 << HEAP_ENTRY_SHIFT) == sizeof(HEAP_FREE_ENTRY));