Как определить типы «UCHAR * POINTER_32» и «VOID * POINTER_32» в Delphi?

Фон:

ПереводяIP_OPTION_INFORMATION32 а такжеICMP_ECHO_REPLY32 структуры для 64-битного компилятора Я застрял с типами данных для использования там. Определение структуры из справочника:

Структура IP_OPTION_INFORMATION32:

typedef struct _IP_OPTION_INFORMATION32 {
  UCHAR              Ttl;
  UCHAR              Tos;
  UCHAR              Flags;
  UCHAR              OptionsSize;
  UCHAR * POINTER_32 OptionsData;
} IP_OPTION_INFORMATION32, *PIP_OPTION_INFORMATION32;

Я бы так перевел (для Delphi XE2, 64-битная целевая платформа). Как видите, я не знаю, какой тип использовать дляOptionsData поле структуры:

IP_OPTION_INFORMATION32 = record
  Ttl: UCHAR;
  Tos: UCHAR;
  Flags: UCHAR;
  OptionsSize: UCHAR;
  OptionsData:       // what should I use here for UCHAR * POINTER_32 ?
end;

Структура ICMP_ECHO_REPLY32:

typedef struct icmp_echo_reply32 {
  IPAddr                         Address;
  ULONG                          Status;
  ULONG                          RoundTripTime;
  USHORT                         DataSize;
  USHORT                         Reserved;
  VOID * POINTER_32              Data;
  struct ip_option_information32  Options;
} ICMP_ECHO_REPLY32, *PICMP_ECHO_REPLY32;

Для 64-битной целевой платформы Delphi XE2 я бы написал:

ICMP_ECHO_REPLY32 = record
  Address: TIPAddr;  // defined before
  Status: ULONG;
  RoundTripTime: ULONG;
  DataSize: USHORT;
  Reserved: USHORT;
  Data:              // what should I use here for VOID * POINTER_32 ?
  Options: IP_OPTION_INFORMATION32;
end;
Вопрос:

Как бы вы определилиUCHAR * POINTER_32 а такжеVOID * POINTER_32 типы в Delphi для 64-битной целевой платформы? Насколько я знаю, 32-битный тип указателя не доступен для 64-битной целевой платформы, и мне просто не нравится, когда его определяют, например. какInt32 тип :-)

Каков наиболее точный перевод для указанных типов?

Ответы на вопрос(2)

Ваш ответ на вопрос