- Reformat heap.c to ROS standards

- HeapCreate should mask out NT flags and tag allocations with CLASS 1.
- Implemented HeapCreateTagsW, HeapExtend, HeapQueryTagW, HeapSummary, HeapUsage.
- Stubbed RtlUsageHeap, RtlQueryTagHeap, RtlExtendHeap, RtlCreateTagHeap.

svn path=/trunk/; revision=22583
This commit is contained in:
Alex Ionescu
2006-06-24 19:49:28 +00:00
parent 8ec0cfcce6
commit d2ced73e52
5 changed files with 331 additions and 202 deletions
+49 -6
View File
@@ -452,8 +452,8 @@ RtlCreateTagHeap(
ULONG
NTAPI
RtlCompactHeap(
HANDLE heap,
ULONG flags
HANDLE Heap,
ULONG Flags
);
NTSYSAPI
@@ -471,7 +471,26 @@ RtlDebugCreateHeap(
NTSYSAPI
HANDLE
NTAPI
RtlDestroyHeap(HANDLE hheap);
RtlDestroyHeap(
IN HANDLE Heap
);
NTSYSAPI
HANDLE
NTAPI
RtlDestroyHeap(
IN HANDLE Heap
);
NTSYSAPI
ULONG
NTAPI
RtlExtendHeap(
IN HANDLE Heap,
IN ULONG Flags,
IN PVOID P,
IN ULONG Size
);
NTSYSAPI
BOOLEAN
@@ -506,6 +525,17 @@ RtlGetUserInfoHeap(
OUT PULONG UserFlags
);
NTSYSAPI
PWSTR
NTAPI
RtlQueryTagHeap(
IN PVOID HeapHandle,
IN ULONG Flags,
IN USHORT TagIndex,
IN BOOLEAN ResetCounters,
OUT PRTL_HEAP_TAG_INFO HeapTagInfo
);
NTSYSAPI
PVOID
NTAPI
@@ -519,12 +549,25 @@ RtlReAllocateHeap(
NTSYSAPI
BOOLEAN
NTAPI
RtlLockHeap(IN HANDLE Heap);
RtlLockHeap(
IN HANDLE Heap
);
NTSYSAPI
NTSTATUS
NTAPI
RtlUsageHeap(
IN HANDLE Heap,
IN ULONG Flags,
OUT PRTL_HEAP_USAGE Usage
);
NTSYSAPI
BOOLEAN
NTAPI
RtlUnlockHeap(IN HANDLE Heap);
RtlUnlockHeap(
IN HANDLE Heap
);
BOOLEAN
NTAPI
@@ -550,7 +593,7 @@ NTAPI
RtlValidateHeap(
HANDLE Heap,
ULONG Flags,
PVOID pmem
PVOID P
);
#define RtlGetProcessHeap() (NtCurrentPeb()->ProcessHeap)
+25
View File
@@ -780,6 +780,31 @@ typedef struct _RTL_PROCESS_MODULE_INFORMATION_EX
PVOID DefaultBase;
} RTL_PROCESS_MODULE_INFORMATION_EX, *PRTL_PROCESS_MODULE_INFORMATION_EX;
typedef struct _RTL_HEAP_TAG_INFO
{
ULONG NumberOfAllocations;
ULONG NumberOfFrees;
ULONG BytesAllocated;
} RTL_HEAP_TAG_INFO, *PRTL_HEAP_TAG_INFO;
typedef struct _RTL_HEAP_USAGE_ENTRY
{
struct _RTL_HEAP_USAGE_ENTRY *Next;
} RTL_HEAP_USAGE_ENTRY, *PRTL_HEAP_USAGE_ENTRY;
typedef struct _RTL_HEAP_USAGE
{
ULONG Length;
ULONG BytesAllocated;
ULONG BytesCommitted;
ULONG BytesReserved;
ULONG BytesReservedMaximum;
PRTL_HEAP_USAGE_ENTRY Entries;
PRTL_HEAP_USAGE_ENTRY AddedEntries;
PRTL_HEAP_USAGE_ENTRY RemovedEntries;
UCHAR Reserved[32];
} RTL_HEAP_USAGE, *PRTL_HEAP_USAGE;
typedef struct _RTL_HEAP_INFORMATION
{
PVOID BaseAddress;