public void EndWriteMessage()
        {
            // This is just a temporary and ignored array used on the WriteFile calls.
            byte[] _numReadWritten = new byte[4];

            _writer.Flush();

            uint len = (uint)_stream.Length;

            //TODO: Replace BitConverter
            bool fOk = PipeNative.WriteFile(_handle,
                                            BitConverter.GetBytes(len),
                                            4,
                                            _numReadWritten,
                                            0);

            if (fOk)
            {
                fOk = PipeNative.WriteFile(_handle,
                                           _stream.GetBuffer(),
                                           len,
                                           _numReadWritten,
                                           0);
            }

            if (!fOk)
            {
                throw new PipeIOException("Error writing to pipe " + _handle + ": error " + PipeNative.GetLastError());
            }

            Flush();

            _stream = null;
            _writer = null;
        }