IOCTL_QUERY_RAO_INFO

This command is used to query the maximum UDS number and UDS size before the Recommended Access Order list is generated and received (TS1140 or later). The structure for the IOCTL_QUERY_RAO_INFO command is
#define UDS_WITHOUT_GEOMETRY 0
#define UDS_WITH_GEOMETRY    1

typedef struct _QUERY_RAO_INF{
    CHAR uds_type;                            /*[IN] 0: UDS_WITHOUT_GEOMETRY
                                                     1: UDS_WITH_GEOMETRY            */
    CHAR reserved[7];USHORT max_uds_number;   /* [OUT] Max UDS number supported
                                                from drive                           */
    USHORT max_uds_size;                      /* [OUT] Max single UDS size supported 
                                                from drive in bytes                  */
    USHORT max_host_uds_number;               /* [OUT] Max UDS number supported from
                                                driver                               */
} QUERY_RAO_INFO, *PQUERY_RAO_INFO;
An example of the IOCTL_QUERY_RAO_INFO command is
QUERY_RAO_INFO qRAO;
...
qRAO.uds_type = udstype; //UDS_WITHOUT_GEOMETRY or  UDS_WITH_GEOMETRY
*rc_ptr = DeviceIoControl(hDevice,
                                 IOCTL_QUERY_RAO_INFO,&
                                 qRAO,
                                 sizeof(QUERY_RAO_INFO),
                                 &qRAO,
                                 sizeof(QUERY_RAO_INFO),
                                 &cb,
                                 (LPOVERLAPPED) NULL);