unsigned char ** equivalente en c # y tiene que escribir el valor de retorno en un archivo

Tengo que llamar a una función dll win32

int func1( int arg1, unsigned char **arg2, int *arg3);

y necesito envuelto en c # como

public extern int fuc1(int arg1, out IntPtr arg2, out IntPtr arg3);

y lo llamé desde una aplicación c # como

int arg1;
IntPtr arg2 = IntPtr.Zero;
IntPtr arg3 = IntPtr.Zero;
func1(arg1,out arg2,out arg3);

¿Se declara la función en el envoltorio de c #, así como en la aplicación de prueba de C #, correcto? Ahora necesito almacenar el arg2 en un archivo de texto. Como hacer eso.

Obtuve la respuesta de Hans y la escribí en un archivo usando

System.IO.StreamWriter(@Application.StartupPath + "\\Filename.txt");
file.WriteLine(arg2);
file.Close();

Respuestas a la pregunta(2)

Su respuesta a la pregunta