internal OverlappedCache(Overlapped overlapped, object pinnedObjects, IOCompletionCallback callback, bool alreadyTriedCast) { m_Overlapped = overlapped; m_PinnedObjects = pinnedObjects; m_PinnedObjectsArray = alreadyTriedCast ? null : NclConstants.EmptyObjectArray; unsafe { m_NativeOverlapped = (IntPtr) overlapped.UnsafePack(callback, pinnedObjects); } }