57 if (dwMaximumSize == 0)
59 else if (dwMaximumSize < BaseStaticServerData->SysInfo.PageSize &&
60 dwInitialSize > dwMaximumSize)
64 dwMaximumSize = dwInitialSize;
103 return RtlGetProcessHeap();
296 DPRINT1(
"Warning, HeapWalk is calling RtlWalkHeap with Win32 parameters\n");
323 HeapInformationClass,
325 HeapInformationLength,
350 HeapInformationClass,
352 HeapInformationLength);
908 hMem = &HandleEntry->
Object;
915 hMem = &HandleEntry->
Object;
1013 if (!HandleEntry->
Object)
1288 sizeof(PerformanceInfo),
1299 lpBuffer->ullTotalPhys = PhysicalMemory;
1304 lpBuffer->ullAvailPhys = PhysicalMemory;
1319 lpBuffer->ullTotalPageFile =
min(QuotaLimits.PagefileLimit,
1328 QuotaLimits.PagefileLimit -
1338 lpBuffer->ullAvailExtendedVirtual = 0;
1350 MEMORYSTATUSEX lpBufferEx;
1353 lpBufferEx.dwLength =
sizeof(MEMORYSTATUSEX);
1358 lpBuffer->dwMemoryLoad = lpBufferEx.dwMemoryLoad;
1676 hMem = &HandleEntry->
Object;
1682 hMem = &HandleEntry->
Object;
#define ERROR_INVALID_PARAMETER
#define BaseHeapFreeEntry(he)
IN CINT OUT PVOID IN ULONG OUT PULONG ReturnLength
NTSYSAPI NTSTATUS NTAPI NtQuerySystemInformation(IN SYSTEM_INFORMATION_CLASS SystemInfoClass, OUT PVOID SystemInfoBuffer, IN ULONG SystemInfoBufferSize, OUT PULONG BytesReturned OPTIONAL)
HGLOBAL NTAPI GlobalAlloc(UINT uFlags, SIZE_T dwBytes)
#define BaseHeapAllocEntry()
BOOL NTAPI LocalUnlock(HLOCAL hMem)
HGLOBAL NTAPI GlobalReAlloc(HGLOBAL hMem, SIZE_T dwBytes, UINT uFlags)
PBASE_STATIC_SERVER_DATA BaseStaticServerData
#define HEAP_NO_SERIALIZE
ULONG_PTR SystemRangeStart
NTSYSAPI VOID NTAPI RtlInitializeHandleTable(_In_ ULONG TableSize, _In_ ULONG HandleSize, _In_ PRTL_HANDLE_TABLE HandleTable)
HANDLE WINAPI HeapCreate(DWORD flOptions, SIZE_T dwInitialSize, SIZE_T dwMaximumSize)
#define BASE_HEAP_ENTRY_FLAG_REUSE
_Must_inspect_result_ _In_ USAGE _In_ USHORT _In_ USAGE Usage
UINT NTAPI GlobalFlags(HGLOBAL hMem)
_Must_inspect_result_ _In_ PFSRTL_PER_STREAM_CONTEXT Ptr
#define ERROR_INVALID_HANDLE
VOID NTAPI GlobalFix(HGLOBAL hMem)
BOOLEAN NTAPI RtlFreeHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID HeapBase)
NTSTATUS NTAPI NtQueryInformationProcess(IN HANDLE ProcessHandle, IN PROCESSINFOCLASS ProcessInformationClass, OUT PVOID ProcessInformation, IN ULONG ProcessInformationLength, OUT PULONG ReturnLength OPTIONAL)
#define GMEM_INVALID_HANDLE
PWSTR NTAPI RtlQueryTagHeap(IN PVOID HeapHandle, IN ULONG Flags, IN USHORT TagIndex, IN BOOLEAN ResetCounters, OUT PRTL_HEAP_TAG_INFO HeapTagInfo)
#define ERROR_NOT_ENOUGH_MEMORY
#define INVALID_HANDLE_VALUE
#define BASE_TRACE_HANDLE(x, y)
BOOL WINAPI HeapValidate(HANDLE hHeap, DWORD dwFlags, LPCVOID lpMem)
#define BASE_TRACE_ALLOC(x, y)
HGLOBAL NTAPI GlobalHandle(LPCVOID pMem)
DWORD WINAPI GetProcessHeaps(DWORD NumberOfHeaps, PHANDLE ProcessHeaps)
SIZE_T NTAPI LocalSize(HLOCAL hMem)
HANDLE WINAPI GetProcessHeap(VOID)
#define HEAP_SETTABLE_USER_VALUE
#define RtlMoveMemory(Destination, Source, Length)
#define BASE_TRACE_ALLOC2(x)
SIZE_T NTAPI GlobalSize(HGLOBAL hMem)
BOOL WINAPI HeapDestroy(HANDLE hHeap)
struct _QUOTA_LIMITS QUOTA_LIMITS
return STATUS_NOT_IMPLEMENTED
BOOLEAN NTAPI RtlSetUserValueHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, IN PVOID UserValue)
NTSYSAPI ULONG WINAPI RtlNtStatusToDosError(NTSTATUS)
NTSTATUS(* NTAPI)(IN PFILE_FULL_EA_INFORMATION EaBuffer, IN ULONG EaLength, OUT PULONG ErrorOffset)
#define BASE_TRACE_PTR(x, y)
VOID NTAPI BaseDllInitializeMemoryManager(VOID)
static TAGREF LPCWSTR LPDWORD LPVOID lpBuffer
RTL_HANDLE_TABLE BaseHeapHandleTable
#define EXCEPTION_EXECUTE_HANDLER
ULONG NTAPI RtlCreateTagHeap(IN HANDLE HeapHandle, IN ULONG Flags, IN PWSTR TagName, IN PWSTR TagSubName)
BOOL WINAPI HeapSetInformation(HANDLE HeapHandle, HEAP_INFORMATION_CLASS HeapInformationClass, PVOID HeapInformation OPTIONAL, SIZE_T HeapInformationLength OPTIONAL)
NTSYSAPI PVOID NTAPI RtlDestroyHeap(IN PVOID HeapHandle)
SIZE_T WINAPI LocalShrink(HLOCAL hMem, UINT cbNewSize)
DWORD BaseSetLastNTError(IN NTSTATUS Status)
#define SystemPerformanceInformation
LPVOID NTAPI GlobalWire(HGLOBAL hMem)
BOOLEAN NTAPI RtlGetUserInfoHeap(IN PVOID HeapHandle, IN ULONG Flags, IN PVOID BaseAddress, OUT PVOID *UserValue, OUT PULONG UserFlags)
struct _MEMORYSTATUS MEMORYSTATUS
#define NtCurrentProcess()
SYSTEM_BASIC_INFORMATION SysInfo
PVOID NTAPI RtlAllocateHeap(IN PVOID HeapHandle, IN ULONG Flags, IN SIZE_T Size)
BOOL WINAPI HeapWalk(HANDLE hHeap, LPPROCESS_HEAP_ENTRY lpEntry)
_In_ HANDLE _Outptr_result_bytebuffer_ ViewSize PVOID * BaseAddress
#define LMEM_INVALID_HANDLE
_Must_inspect_result_ _In_ ULONG Flags
NTSYSAPI ULONG WINAPI RtlCompactHeap(HANDLE, ULONG)
#define NT_SUCCESS(StatCode)
BOOL NTAPI GlobalUnWire(HGLOBAL hMem)
SIZE_T NTAPI LocalCompact(UINT dwMinFree)
NTSYSAPI BOOLEAN WINAPI RtlValidateHeap(HANDLE, ULONG, LPCVOID)
HGLOBAL NTAPI GlobalFree(HGLOBAL hMem)
NTSYSAPI BOOLEAN WINAPI RtlUnlockHeap(HANDLE)
BOOL WINAPI HeapSummary(HANDLE hHeap, DWORD dwFlags, PVOID Summary)
#define BaseHeapGetEntry(h)
BOOL WINAPI HeapUsage(HANDLE hHeap, DWORD dwFlags, DWORD Unknown, DWORD Unknown2, IN PVOID Usage)
NTSYSAPI NTSTATUS WINAPI RtlQueryHeapInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T, PSIZE_T)
VOID NTAPI GlobalMemoryStatus(LPMEMORYSTATUS lpBuffer)
BOOL WINAPI HeapLock(HANDLE hHeap)
DWORD WINAPI HeapCreateTagsW(HANDLE hHeap, DWORD dwFlags, PWSTR lpTagName, PWSTR lpTagSubName)
NTSYSAPI BOOLEAN WINAPI RtlLockHeap(HANDLE)
NTSYSAPI NTSTATUS WINAPI RtlWalkHeap(HANDLE, PVOID)
LPVOID NTAPI GlobalLock(HGLOBAL hMem)
#define BASE_HEAP_FLAG_MOVABLE
#define BASE_HEAP_ENTRY_FLAG_MOVABLE
_In_ PCCERT_CONTEXT _In_ DWORD dwFlags
NTSYSAPI PVOID NTAPI RtlCreateHeap(IN ULONG Flags, IN PVOID HeapBase OPTIONAL, IN ULONG ReserveSize OPTIONAL, IN ULONG CommitSize OPTIONAL, IN PVOID Lock OPTIONAL, IN PRTL_HEAP_PARAMETERS Parameters OPTIONAL)
SIZE_T WINAPI HeapCompact(HANDLE hHeap, DWORD dwFlags)
NTSYSAPI SIZE_T NTAPI RtlSizeHeap(_In_ PVOID HeapHandle, _In_ ULONG Flags, _In_ PVOID MemoryPointer)
#define STATUS_MORE_ENTRIES
#define BASE_HEAP_IS_HANDLE_ENTRY
SIZE_T NTAPI GlobalCompact(DWORD dwMinFree)
HLOCAL NTAPI LocalReAlloc(HLOCAL hMem, SIZE_T dwBytes, UINT uFlags)
BOOL WINAPI HeapUnlock(HANDLE hHeap)
NTSYSAPI ULONG WINAPI RtlGetProcessHeaps(ULONG, HANDLE *)
#define BASE_TRACE_FAILURE()
HLOCAL NTAPI LocalFree(HLOCAL hMem)
DWORD WINAPI HeapExtend(HANDLE hHeap, DWORD dwFlags, PVOID BaseAddress, DWORD dwBytes)
#define BASE_HEAP_ENTRY_FLAG_REUSABLE
LPVOID NTAPI LocalLock(HLOCAL hMem)
#define BaseHeapValidateEntry(he)
BOOL WINAPI IsBadReadPtr(IN LPCVOID lp, IN UINT_PTR ucb)
BOOL WINAPI HeapQueryInformation(HANDLE HeapHandle, HEAP_INFORMATION_CLASS HeapInformationClass, PVOID HeapInformation OPTIONAL, SIZE_T HeapInformationLength OPTIONAL, PSIZE_T ReturnLength OPTIONAL)
PWSTR WINAPI HeapQueryTagW(HANDLE hHeap, DWORD dwFlags, WORD wTagIndex, BOOL bResetCounters, PVOID lpTagInfo)
BOOL NTAPI GlobalUnlock(HGLOBAL hMem)
UINT NTAPI LocalFlags(HLOCAL hMem)
VOID NTAPI GlobalUnfix(HGLOBAL hMem)
NTSYSAPI NTSTATUS WINAPI RtlSetHeapInformation(HANDLE, HEAP_INFORMATION_CLASS, PVOID, SIZE_T)
#define BASE_HEAP_ENTRY_FLAG_DDESHARE
NTSYSAPI PVOID WINAPI RtlReAllocateHeap(HANDLE, ULONG, PVOID, SIZE_T)
#define RtlCopyMemory(Destination, Source, Length)
enum _HEAP_INFORMATION_CLASS HEAP_INFORMATION_CLASS
BOOL NTAPI GlobalMemoryStatusEx(LPMEMORYSTATUSEX lpBuffer)
HLOCAL NTAPI LocalAlloc(UINT uFlags, SIZE_T dwBytes)
#define _SEH2_EXCEPT(...)
_In_ PATHOBJ _In_ CLIPOBJ _In_ BRUSHOBJ _In_ POINTL _In_ MIX _In_ FLONG flOptions
HLOCAL NTAPI LocalHandle(LPCVOID pMem)
#define _SEH2_GetExceptionCode()
#define BASE_TRACE_DEALLOC(x)
#define HEAP_GENERATE_EXCEPTIONS
#define HEAP_REALLOC_IN_PLACE_ONLY
PSDBQUERYRESULT_VISTA PVOID DWORD * dwSize
PULONG MinorVersion OPTIONAL