In C# PInvoke, how do I pass a string buffer so that the C DLL fills it and returns? What will be the PInvoke declaration?

The C function declaration is

int GetData(char* data, int buflength);

In C#, I have declared it as

[DllImport(DllName)]
static extern Int32 GetData([MarshalAs(UnmanagedType.LPStr)]StringBuilder receiveddata, Int32 buflen);

Is it correct? I'm passing the StringBuilder variable like this

int bufferLength = 32;
StringBuilder data = new StringBuilder(bufferLength);
int result = GetData(data, bufferLength);

I would like to know is it correct or not?

Thanks

Edit
Report