typedef enum MEM_EXTENDED_PARAMETER_TYPE {
  MemExtendedParameterInvalidType = 0,
  MemExtendedParameterAddressRequirements = 1,
  MemExtendedParameterNumaNode = 2,
  MemExtendedParameterPartitionHandle = 3,
  MemExtendedParameterUserPhysicalHandle = 4,
  MemExtendedParameterAttributeFlags = 5,
  MemExtendedParameterImageMachine = 6,
  MemExtendedParameterMax
}  *PMEM_EXTENDED_PARAMETER_TYPE;


typedef struct _MEM_ADDRESS_REQUIREMENTS {
  PVOID  LowestStartingAddress;
  PVOID  HighestEndingAddress;
  SIZE_T Alignment;
} MEM_ADDRESS_REQUIREMENTS, *PMEM_ADDRESS_REQUIREMENTS;


typedef struct MEM_EXTENDED_PARAMETER {
  struct {
    ULONG64 Type : 8; // MEM_EXTENDED_PARAMETER_TYPE_BITS -> define not handled in parser here
    ULONG64 Reserved : 56; // 64 - MEM_EXTENDED_PARAMETER_TYPE_BITS -> define not handled in parser here
  } DUMMYSTRUCTNAME;
  union {
    ULONG64 ULong64;
    PVOID   Pointer;
    SIZE_T  Size;
    HANDLE  Handle;
    ULONG   ULong;
  } DUMMYUNIONNAME;
} MEM_EXTENDED_PARAMETER, *PMEM_EXTENDED_PARAMETER;