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