MEM_EXTENDED_PARAMETER structure (winnt.h)

Represents an extended parameter for a function that manages virtual memory.

Syntax

typedef struct MEM_EXTENDED_PARAMETER {
  struct {
    DWORD64 Type : MEM_EXTENDED_PARAMETER_TYPE_BITS;
    DWORD64 Reserved : 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS;
  } DUMMYSTRUCTNAME;
  union {
    DWORD64 ULong64;
    PVOID   Pointer;
    SIZE_T  Size;
    HANDLE  Handle;
    DWORD   ULong;
  } DUMMYUNIONNAME;
} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;

Members

DUMMYSTRUCTNAME

DUMMYSTRUCTNAME.Type

A MEM_EXTENDED_PARAMETER_TYPE value that indicates the type of the parameter.

If Type is set to MemExtendedParameterAddressRequirements, then Pointer must be a pointer to a caller-allocated MEM_ADDRESS_REQUIREMENTS structure that specifies the lowest and highest base address and alignment.

If Type is set to MemExtendedParameterNumaNode, then ULong64 must be set to the desired node number.

If Type is set to MemExtendedParameterAttributeFlags, then ULong64 must be set to a value that contains the desired flags:

Flag Value Meaning
MEM_EXTENDED_PARAMETER_NONPAGED_LARGE 0x08 The allocation is mapped using large pages.
MEM_EXTENDED_PARAMETER_NONPAGED_HUGE 0x10 The allocation is mapped using huge pages.
MEM_EXTENDED_PARAMETER_EC_CODE 0x40 The allocation will contain emulation-compatible (EC) code.

DUMMYSTRUCTNAME.Reserved

Reserved.

DUMMYUNIONNAME

DUMMYUNIONNAME.ULong64

If Type is set to MemExtendedParameterNumaNode, then ULong64 must be set to the desired node number.

DUMMYUNIONNAME.Pointer

If Type is set to MemExtendedParameterAddressRequirements, then Pointer must be a pointer to a caller-allocated MEM_ADDRESS_REQUIREMENTS structure that specifies the lowest and highest base address and alignment.

DUMMYUNIONNAME.Size

DUMMYUNIONNAME.Handle

DUMMYUNIONNAME.ULong

Requirements

Requirement Value
Minimum supported client Windows 10 [desktop apps only]
Minimum supported server Windows Server 2016 [desktop apps only]
Header winnt.h