Die Funktion DS_create_XX_handle() fordert Speicherplatz für die zu übertragenden Daten an. Für jeden Datentyp ist hier eine eigene Datenstruktur vorgesehen. Die Datenstruktur für 2D-Daten ist z.B.:
struct DIM_ARRAY_2D_DATA
{
unsigned long int data_type; /* Datentyp */
char name[16]; /* Name der Daten */
long int user_flag; /* Flag */
long int machine_id; /* Rechnernummer */
int x_dim; /* x Dimension */
int y_dim; /* y Dimension */
int x_start; /* Erste x Position */
int y_start; /* Erste y Position */
int x_end; /* Letzte x Position */
int y_end; /* Letzte y Position */
int major_order_1; /* X_DIM oder Y_DIM */
void * data_ptr; /* Daten */
};
In der Datenstruktur stehen die Beschreibung der Daten sowie ein Zeiger auf die Daten. Aus der Beschreibung läßt sich später die Größe des Datenfeldes berechnen.