关于C#中怎么获取dll中的全局变量地址

关于C#中如何获取dll中的全局变量地址
本人现在有如下问题,在dll中我开辟了一块内存(uchar* 的全局变量),如下:
unsigned char* BufferFeature = NULL;
并在一个初始换函数中完成内存的分配工作。
现在我希望外界能够访问这个指针,在外界完成的工作是:将内存中的数据以二进制文件的形式保存下来
我的接口如下:
int FR_GetPackFeature(FeatureData* PackFeature)
其中FeatureData是我自己定义的一个结构体
// 特征数据
typedef struct FeatureData{
unsigned char**PackFeatureData;
unsigned int PackFeatureLength;
}FeatureData;

这个结构体中,PackFeatureData是一个二级指针,通过它来获取dll中的BufferFeature指针。
现在遇到的问题是,C#中我不知道如何定义一个完全一样的结构体,因为二级指针在C#中似乎无法定义,请教各位论坛大神,这个问题如何解决,谢谢
------解决方案--------------------
不需要引用,直接赋值。
C# 中使用 IntPtr。
获取以后,使用 Marshal 读取。
typedef struct FeatureData{
    unsigned char*PackFeatureData;
    unsigned int PackFeatureLength;
}FeatureData;
int FR_GetPackFeature(FeatureData* PackFeature)
{
PackFeature->PackFeatureData = BufferFeature;
PackFeature->PackFeatureLength = 100;
return 0;
}

[structLayout(...)]
struct FeatureData{
    IntPtr PackFeatureData;
    uint PackFeatureLength;
};

public static extern int FR_GetPackFeature(ref FeatureData PackFeature);