示例#1
0
        public override void Write(byte[] buffer, int offset, int count)
        {
            byte[] data = new byte[count];

            for (int i = offset, i2 = 0; i < count; i++, i2++)
            {
                data[i2] = buffer[i];
            }

            NTStatus status;
            int      bytesWritten = 0;

            var stopwatch = new Stopwatch();

            stopwatch.Start();
            do
            {
                status = _fileStore.WriteFile(out bytesWritten, _fileHandle, _position, data);
            }while (status == NTStatus.STATUS_PENDING && stopwatch.Elapsed.TotalSeconds <= _smbFileSystemSettings.ClientSessionTimeout);
            stopwatch.Stop();

            status.HandleStatus();

            _position += bytesWritten;
        }