private static RdcNeed[] GetRdcNeedList(RdcNeedPointer pointer)
{
var result = new RdcNeed[pointer.Used];
var ptr = pointer.Data;
var needSize = Marshal.SizeOf(typeof (RdcNeed));
// Get our native needs pointer
// and deserialize to our managed
// RdcNeed array.
for (var i = 0; i < result.Length; i++)
{
result[i] = (RdcNeed) Marshal.PtrToStructure(ptr, typeof (RdcNeed));
// Advance the intermediate pointer
// to our next RdcNeed struct.
ptr = new IntPtr(ptr.ToInt32() + needSize);
}
return result;
}