Entries
Это массив, причем размеру GCFDirectoryHeader.ItemCount.
Код: Выделить всё
[b] struct GCFDirectoryEntry { DWORD NameOffset; DWORD ItemSize; DWORD ChecksumIndex; DWORD DirectoryFlags; DWORD ParentIndex; DWORD NextIndex; DWORD FirstIndex; }[/b]
NameOffset определяет смещение в таблице, где название пункта находится. C string .
ItemSize определяет размер пункта. Если элемент файла, то это количество байтов в файл, в противном случае, если элемент каталога, то количество файлов в каталоге.
ChecksumIndex определяет индекс контрольные суммы для файлов в контрольной карте. Если элемент папку, а затем это значение 0xFFFFFFFF.
DirectoryFlags определяет различные флаги для пункта. Речь идет в настоящее время известны флаги:
# 0x00004000 - Этот пункт является файл.
# 0x00000800 - Этот пункт является исполняемым файлом. (Непроверенный)
# 0x00000400 - Этот пункт является скрытым. (Непроверенный)
# 0x00000200 - Этот пункт только для чтения. (Непроверенный)
# 0x00000100 - Пункт, в зашифрованном виде.
# 0x00000080 - Данный пункт очистки файла. (Непроверенный)
# 0x00000040 - Backup пункта до переписав его. Версионных УНЦ File (Непроверенный))
# 0x00000020 - Данный пункт не кэш-файла. (Непроверенный)
0x0000000a - Этот пункт должен быть скопирован на диск. (Это на самом деле сочетание запустить файл блокируется и флаги.)
# 0x00000008 - Вопрос закрыт. (Непроверенный)
# 0x00000002 - Этот пункт является запуск файла. (Непроверенный)
# 0x00000001 - Этот пункт является пользователем файла конфигурации. Не перезаписывать пункта, если скопировать его на диск и пункт, уже существует.