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;
}