private static int UnmanagedRead(IntPtr buffer, int length, IntPtr data) { DeflateStream deflateStream = GCHandle.FromIntPtr(data).Target as DeflateStream; if (deflateStream == null) { return(-1); } return(deflateStream.UnmanagedRead(buffer, length)); }