ialloc 0.0.0-2025-05-02

Allocator interface traits
Documentation
<!-- Windows -->

[`CoTaskMemAlloc`]:                 https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemalloc
[`CoTaskMemRealloc`]:               https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemrealloc
[`CoTaskMemFree`]:                  https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemfree
[`CoGetMalloc`]:                    https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cogetmalloc

[CoTaskMemAlloc]:                   https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemalloc
[CoTaskMemRealloc]:                 https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemrealloc
[CoTaskMemFree]:                    https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cotaskmemfree
[CoGetMalloc]:                      https://learn.microsoft.com/en-us/windows/win32/api/combaseapi/nf-combaseapi-cogetmalloc

[`HeapAlloc`]:                      https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc
[`HeapCreate`]:                     https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapcreate
[`HeapDestroy`]:                    https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapdestroy
[`HeapReAlloc`]:                    https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heaprealloc
[`HeapFree`]:                       https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapfree
[`HeapSize`]:                       https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapsize
[`GetProcessHeap`]:                 https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-getprocessheap
[`HEAP_NO_SERIALIZE`]:              https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters
[`HEAP_ZERO_MEMORY`]:               https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters
[`HEAP_GENERATE_EXCEPTIONS`]:       https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters

[HeapAlloc]:                        https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc
[HeapCreate]:                       https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapcreate
[HeapDestroy]:                      https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapdestroy
[HeapReAlloc]:                      https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heaprealloc
[HeapFree]:                         https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapfree
[HeapSize]:                         https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapsize
[GetProcessHeap]:                   https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-getprocessheap
[HEAP_NO_SERIALIZE]:                https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters
[HEAP_ZERO_MEMORY]:                 https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters
[HEAP_GENERATE_EXCEPTIONS]:         https://learn.microsoft.com/en-us/windows/win32/api/heapapi/nf-heapapi-heapalloc#parameters

[`LocalAlloc`]:                     https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc
[`LocalReAlloc`]:                   https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localrealloc
[`LocalFree`]:                      https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localfree
[`LocalSize`]:                      https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localsize
[`LMEM_MOVEABLE`]:                  https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc#parameters
[`LMEM_ZEROINIT`]:                  https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc#parameters

[LocalAlloc]:                       https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc
[LocalReAlloc]:                     https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localrealloc
[LocalFree]:                        https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localfree
[LocalSize]:                        https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localsize
[LMEM_MOVEABLE]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc#parameters
[LMEM_ZEROINIT]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-localalloc#parameters

[`GlobalAlloc`]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc
[`GlobalReAlloc`]:                  https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalrealloc
[`GlobalFree`]:                     https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalfree
[`GlobalSize`]:                     https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalsize
[`GMEM_MOVEABLE`]:                  https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc#parameters
[`GMEM_ZEROINIT`]:                  https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc#parameters

[GlobalAlloc]:                      https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc
[GlobalReAlloc]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalrealloc
[GlobalFree]:                       https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalfree
[GlobalSize]:                       https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalsize
[GMEM_MOVEABLE]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc#parameters
[GMEM_ZEROINIT]:                    https://learn.microsoft.com/en-us/windows/win32/api/winbase/nf-winbase-globalalloc#parameters

[`CryptMemAlloc`]:                  https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemalloc
[`CryptMemRealloc`]:                https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemrealloc
[`CryptMemFree`]:                   https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemfree

[CryptMemAlloc]:                    https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemalloc
[CryptMemRealloc]:                  https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemrealloc
[CryptMemFree]:                     https://learn.microsoft.com/en-us/windows/win32/api/wincrypt/nf-wincrypt-cryptmemfree

[`IMalloc::Alloc`]:                 https://learn.microsoft.com/en-us/windows/win32/api/objidl/nf-objidl-imalloc-alloc
[`IMalloc::Realloc`]:               https://learn.microsoft.com/en-us/windows/win32/api/objidl/nf-objidl-imalloc-realloc
[`IMalloc::Free`]:                  https://learn.microsoft.com/en-us/windows/win32/api/objidl/nf-objidl-imalloc-free
[`IMalloc::GetSize`]:               https://learn.microsoft.com/en-us/windows/win32/api/objidl/nf-objidl-imalloc-getsize

[`VirtualAlloc`]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc
[`VirtualAlloc2`]:                  https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc2
[`VirtualAlloc2FromApp`]:           https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc2fromapp
[`VirtualAllocEx`]:                 https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex
[`VirtualAllocExNuma`]:             https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocexnuma
[`VirtualAllocFromApp`]:            https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocfromapp
[`VirtualFree`]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree
[`VirtualFreeEx`]:                  https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfreeex
[`VirtualLock`]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtuallock
[`VirtualProtect`]:                 https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect
[`VirtualProtectEx`]:               https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotectex
[`VirtualProtectFromApp`]:          https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotectfromapp
[`VirtualQuery`]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualquery
[`VirtualQueryEx`]:                 https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualqueryex
[`VirtualUnlock`]:                  https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualunlock

[VirtualAlloc]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc
[VirtualAlloc2]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc2
[VirtualAlloc2FromApp]:             https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc2fromapp
[VirtualAllocEx]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocex
[VirtualAllocExNuma]:               https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocexnuma
[VirtualAllocFromApp]:              https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualallocfromapp
[VirtualFree]:                      https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree
[VirtualFreeEx]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfreeex
[VirtualLock]:                      https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtuallock
[VirtualProtect]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotect
[VirtualProtectEx]:                 https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotectex
[VirtualProtectFromApp]:            https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualprotectfromapp
[VirtualQuery]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualquery
[VirtualQueryEx]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualqueryex
[VirtualUnlock]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualunlock

[`MEM_COMMIT`]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_RESERVE`]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_RESET`]:                      https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_RESET_UNDO`]:                 https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_LARGE_PAGES`]:                https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_PHYSICAL`]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_TOP_DOWN`]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_WRITE_WATCH`]:                https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[`MEM_DECOMMIT`]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree#parameters
[`MEM_RELEASE`]:                    https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree#parameters

[MEM_COMMIT]:                       https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_RESERVE]:                      https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_RESET]:                        https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_RESET_UNDO]:                   https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_LARGE_PAGES]:                  https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_PHYSICAL]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_TOP_DOWN]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_WRITE_WATCH]:                  https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualalloc#parameters
[MEM_DECOMMIT]:                     https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree#parameters
[MEM_RELEASE]:                      https://learn.microsoft.com/en-us/windows/win32/api/memoryapi/nf-memoryapi-virtualfree#parameters

[`PAGE_EXECUTE`]:                   https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_EXECUTE_READ`]:              https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_EXECUTE_READWRITE`]:         https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_EXECUTE_WRITECOPY`]:         https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_NOACCESS`]:                  https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_READONLY`]:                  https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_READWRITE`]:                 https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_WRITECOPY`]:                 https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_TARGETS_INVALID`]:           https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_TARGETS_NO_UPDATE`]:         https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_GUARD`]:                     https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_NOCACHE`]:                   https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_WRITECOMBINE`]:              https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_ENCLAVE_DECOMMIT`]:          https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_ENCLAVE_THREAD_CONTROL`]:    https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[`PAGE_ENCLAVE_UNVALIDATED`]:       https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants

[PAGE_EXECUTE]:                     https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_EXECUTE_READ]:                https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_EXECUTE_READWRITE]:           https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_EXECUTE_WRITECOPY]:           https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_NOACCESS]:                    https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_READONLY]:                    https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_READWRITE]:                   https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_WRITECOPY]:                   https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_TARGETS_INVALID]:             https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_TARGETS_NO_UPDATE]:           https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_GUARD]:                       https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_NOCACHE]:                     https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_WRITECOMBINE]:                https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_ENCLAVE_DECOMMIT]:            https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_ENCLAVE_THREAD_CONTROL]:      https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants
[PAGE_ENCLAVE_UNVALIDATED]:         https://learn.microsoft.com/en-us/windows/win32/Memory/memory-protection-constants#constants