public StagingBlock(byte[] array, uint sizeInBytes, StagingMemoryPool pool)
 {
     Debug.Assert(array != null);
     Debug.Assert(array.Length > 0);
     Debug.Assert(sizeInBytes > 0);
     Array       = array;
     SizeInBytes = sizeInBytes;
     Pool        = pool;
 }
 public FixedStagingBlock(byte[] array, uint sizeInBytes, StagingMemoryPool pool)
 {
     Debug.Assert(array != null);
     Debug.Assert(array.Length > 0);
     Debug.Assert(sizeInBytes > 0);
     Array       = array;
     SizeInBytes = sizeInBytes;
     Pool        = pool;
     GCHandle    = GCHandle.Alloc(array, GCHandleType.Pinned);
     Data        = (void *)GCHandle.AddrOfPinnedObject();
 }