internal override int ReadDataWireFormat(byte[] buffer, int bufferIndex, int len) { int start = bufferIndex; SmbFindFileBothDirectoryInfo e; LastNameBufferIndex = bufferIndex + LastNameOffset; Results = new SmbFindFileBothDirectoryInfo[NumEntries]; for (int i = 0; i < NumEntries; i++) { Results[i] = e = new SmbFindFileBothDirectoryInfo(this); e.NextEntryOffset = ReadInt4(buffer, bufferIndex); e.FileIndex = ReadInt4(buffer, bufferIndex + 4); e.CreationTime = ReadTime(buffer, bufferIndex + 8); // e.lastAccessTime = readTime( buffer, bufferIndex + 16 ); e.LastWriteTime = ReadTime(buffer, bufferIndex + 24); // e.changeTime = readTime( buffer, bufferIndex + 32 ); e.EndOfFile = ReadInt8(buffer, bufferIndex + 40); // e.allocationSize = readInt8( buffer, bufferIndex + 48 ); e.ExtFileAttributes = ReadInt4(buffer, bufferIndex + 56); e.FileNameLength = ReadInt4(buffer, bufferIndex + 60); // e.eaSize = readInt4( buffer, bufferIndex + 64 ); // e.shortNameLength = buffer[bufferIndex + 68] & 0xFF; // e.shortName = readString( buffer, bufferIndex + 70, e.shortNameLength ); e.Filename = ReadString(buffer, bufferIndex + 94, e.FileNameLength); if (LastNameBufferIndex >= bufferIndex && (e.NextEntryOffset == 0 || LastNameBufferIndex < (bufferIndex + e.NextEntryOffset))) { LastName = e.Filename; ResumeKey = e.FileIndex; } bufferIndex += e.NextEntryOffset; } //return bufferIndex - start; return(DataCount); }
internal override int ReadDataWireFormat(byte[] buffer, int bufferIndex, int len) { int start = bufferIndex; SmbFindFileBothDirectoryInfo e; LastNameBufferIndex = bufferIndex + LastNameOffset; Results = new SmbFindFileBothDirectoryInfo[NumEntries]; for (int i = 0; i < NumEntries; i++) { Results[i] = e = new SmbFindFileBothDirectoryInfo(this); e.NextEntryOffset = ReadInt4(buffer, bufferIndex); e.FileIndex = ReadInt4(buffer, bufferIndex + 4); e.CreationTime = ReadTime(buffer, bufferIndex + 8); // e.lastAccessTime = readTime( buffer, bufferIndex + 16 ); e.LastWriteTime = ReadTime(buffer, bufferIndex + 24); // e.changeTime = readTime( buffer, bufferIndex + 32 ); e.EndOfFile = ReadInt8(buffer, bufferIndex + 40); // e.allocationSize = readInt8( buffer, bufferIndex + 48 ); e.ExtFileAttributes = ReadInt4(buffer, bufferIndex + 56); e.FileNameLength = ReadInt4(buffer, bufferIndex + 60); // e.eaSize = readInt4( buffer, bufferIndex + 64 ); // e.shortNameLength = buffer[bufferIndex + 68] & 0xFF; // e.shortName = readString( buffer, bufferIndex + 70, e.shortNameLength ); e.Filename = ReadString(buffer, bufferIndex + 94, e.FileNameLength); if (LastNameBufferIndex >= bufferIndex && (e.NextEntryOffset == 0 || LastNameBufferIndex < (bufferIndex + e.NextEntryOffset))) { LastName = e.Filename; ResumeKey = e.FileIndex; } bufferIndex += e.NextEntryOffset; } //return bufferIndex - start; return DataCount; }