#ifdef _MSC_VER
#pragma once
#endif // _MSC_VER
#ifndef _HEAPAPI_H_
#define _HEAPAPI_H_
#include <apiset.h>
#include <apisetcconv.h>
#include <minwindef.h>
#include <minwinbase.h>
#if _MSC_VER < 1900
#define DECLSPEC_ALLOCATOR
#else
#define DECLSPEC_ALLOCATOR __declspec(allocator)
#endif
#ifdef __cplusplus
extern
"C"
{
#endif
#if _MSC_VER >= 1200
#pragma warning(push)
#pragma warning(disable:4820) // padding added after data member
#endif
#pragma warning(disable:
4820
)
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
typedef
struct
{
;
;
;
;
;
}
, *
;
typedef
;
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Application Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
_Ret_maybenull_
(
_In_ SIZE_T dwInitialSize,
_In_ SIZE_T dwMaximumSize
);
(
);
_Ret_maybenull_
_Post_writable_byte_size_(dwBytes)
(
);
_Success_(return != 0)
_Ret_maybenull_
_Post_writable_byte_size_(dwBytes)
(
_Frees_ptr_opt_ LPVOID lpMem,
);
_Success_(return != FALSE)
(
__drv_freesMem(Mem) _Frees_ptr_opt_ LPVOID lpMem
);
(
);
(
);
(
);
(
_In_opt_ HANDLE HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_In_reads_bytes_opt_(HeapInformationLength) PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_APP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
(
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#pragma region Desktop Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
(
_Out_ LPHEAP_SUMMARY lpSummary
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP)
#pragma endregion
#pragma region Desktop Family or OneCore Family
#if WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
(
_In_ DWORD NumberOfHeaps,
_Out_writes_to_(NumberOfHeaps,return) PHANDLE ProcessHeaps
);
(
);
(
);
(
_Inout_ LPPROCESS_HEAP_ENTRY lpEntry
);
(
_In_opt_ HANDLE HeapHandle,
_In_ HEAP_INFORMATION_CLASS HeapInformationClass,
_Out_writes_bytes_to_opt_(HeapInformationLength,*ReturnLength) PVOID HeapInformation,
_In_ SIZE_T HeapInformationLength,
_Out_opt_ PSIZE_T ReturnLength
);
#endif // WINAPI_FAMILY_PARTITION(WINAPI_PARTITION_DESKTOP | WINAPI_PARTITION_SYSTEM)
#pragma endregion
#if _MSC_VER >= 1200
#pragma warning(pop)
#endif
#ifdef __cplusplus
}
#endif
#endif // _HEAPAPI_H_