Ejemplo n.º 1
0
        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;
 }