public int nabtoStreamWrite(IntPtr stream, byte[] buffer, int offset, int length) { if (offset != 0) { var copyBuffer = new byte[length]; Array.Copy(buffer, offset, copyBuffer, 0, length); return(Win32NativeMethods.nabtoStreamWrite(stream, copyBuffer, (IntPtr)length)); } else { return(Win32NativeMethods.nabtoStreamWrite(stream, buffer, (IntPtr)length)); } }