def METHOD_NAME(addr):
    field_list = list()
    msgctrl = MSI_factory([]).from_address(addr)
    if msgctrl.address_64bit == 1:
        field_list.append(('message_address', ctypes.c_uint64))
    else:
        field_list.append(('message_address', ctypes.c_uint32))
    field_list.append(('message_data', ctypes.c_uint16))
    if msgctrl.per_vector_masking_capable:
        field_list.append(('reserved', ctypes.c_uint16))
        field_list.append(('mask_bits', ctypes.c_uint32))
        field_list.append(('pending_bits', ctypes.c_uint32))
    return field_list