How do you pass a parameter, that is one element of global array, so that the called function has ability to write back to that global element?

Code :
void Auxiliary(__global SomeStruct element)
{
    element.something = ...;
}
__kernel void Kernel(__global SomeStruct *data)
{
    Auxiliary ( data[get_global_id(0)] );
}

Is this valid ? Are variable references or pointer to one struct element available?
It's really ugly to pass the whole global array and item id to Auxiliary function...