No conosco direcX de tal forma que no se como trabaja con las estructuras.
Pero hasta donde tengo entendido en "C" cuando uno pasa una variable tipo puntero, lo unico que se carga en la pila es la información referente a la dirección relativa donde empiezan los datos a los que apunta y la información del tipo de dato al que apunta.
De tal forma, que a mi entender, cuando se pasa un puntero como parametro a una función, el espacio que ocupa en la pila no depende del tipo de dato al que apunte, sino a la calidad del compilador que se este utilizando y de como este manipule la pila. Es decir no depende del programador.
Saludos:
http://www.BenchSQL.com/