private static void RdcBufferTranslate(IntPtr[] source, RdcBufferPointer[] dest)
{
if (source.Length != dest.Length)
{
throw new ArgumentException("source and dest should have the same length");
}
// Marshal the native pointer back to the
// managed structure.
for (var i = 0; i < dest.Length; i++)
{
dest[i] = (RdcBufferPointer) Marshal.PtrToStructure(source[i], typeof (RdcBufferPointer));
Marshal.FreeCoTaskMem(source[i]);
}
}