HeapFlags Enumeration

Flags for Heap functions

Definition

Namespace: DevCase.Win32.Enums
Assembly: DevCase.net48 (in DevCase.net48.dll) Version: 6.0.0.0 (6.0)
XMLNS for XAML: Not mapped to an xmlns.
[FlagsAttribute]
public enum HeapFlags

Remarks

Members

None 0 None
NoSerialize 1 Serialized access will not be used for this allocation.

To ensure that serialized access is disabled for all calls to this function, specify NoSerialize in the call to HeapCreate(HeapFlags, UInt32, UInt32). In this case, it is not necessary to additionally specify NoSerialize in this function call.

This value should not be specified when accessing the process's default heap.

The system may create additional threads within the application's process, such as a CTRL+C handler, that simultaneously access the process's default heap.

Growable 2 Specifies that the heap is growable.

Must be specified if HeapBase is NULL.

GenerateExceptions 4 The system will raise an exception to indicate a function failure, such as an out-of-memory condition, instead of returning NULL.

To ensure that exceptions are generated for all calls to this function, specify GenerateExceptions in the call to HeapCreate(HeapFlags, UInt32, UInt32). In this case, it is not necessary to additionally specify GenerateExceptions in this function call.

ZeroMemory 8 The allocated memory will be initialized to zero. Otherwise, the memory is not initialized to zero.
ReAllocInPlaceOnly 16 There can be no movement when reallocating a memory block.

If this value is not specified, the function may move the block to a new location.

If this value is specified and the block cannot be resized without moving, the function fails, leaving the original memory block unchanged.

TagShift 18 ( NOT DOCUMENTED )
TailCheckingEnabled 32 ( NOT DOCUMENTED )
FreeCheckingEnabled 64 ( NOT DOCUMENTED )
DisableCoalesceOnFree 128 ( NOT DOCUMENTED )
CreateSegmentHeap 256 ( NOT DOCUMENTED )
CreateHardened 512 ( NOT DOCUMENTED )
MaximumTag 4,095 ( NOT DOCUMENTED )
PseudoTagFlag 32,768 ( NOT DOCUMENTED )
CreateAlign16 65,536 ( NOT DOCUMENTED )
CreateEnableTracing 131,072 ( NOT DOCUMENTED )
CreateEnableExecute 262,144 All memory blocks that are allocated from this heap allow code execution, if the hardware enforces data execution prevention.

Use this flag heap in applications that run code from the heap.

If CreateEnableExecute is not specified and an application attempts to run code from a protected page, the application receives an exception with the status code STATUS_ACCESS_VIOLATION.

See Also