Що таке файл OST?
OST або файли автономного зберігання представляють дані поштової скриньки користувача в автономному режимі на локальному комп’ютері після реєстрації на сервері Exchange Server за допомогою Microsoft Outlook. Він автоматично створюється під час першого використання Microsoft Outlook після підключення до сервера. Після створення файлу дані синхронізуються з сервером електронної пошти, щоб вони були доступні в автономному режимі також у разі відключення від сервера електронної пошти. Файли OST можуть використовувати такі елементи поштової скриньки, як електронні листи, контакти, інформація календаря, нотатки, завдання та інші подібні дані. Користувачі можуть створювати електронні листи та інші елементи даних у файлі OST навіть за відсутності підключення до сервера, але вони не будуть синхронізовані з сервером. Після встановлення з’єднання локальний файл знову синхронізується із сервером, щоб і сервер, і локальна копія мали однаковий рівень інформації.
Формат файлу OST
Формат файлів OST (таблиця офлайнового зберігання) і PST (таблиця персонального зберігання) складається з формату файлу персональної папки (PFF), який відповідає для зберігання електронних листів, контактів і зустрічей користувачів. Дані у файлі PFF зберігаються у форматі little-endian, усі дати й час представлені як FILETIME у UTC. [MS-PST] визначає два типи PFF:
- 32-розрядний формат ANSI
- 64-розрядний формат Unicode
Формат файлу PST специфікації, доступний від Microsoft, також застосовний до формату файлу OST як вільний і безвідкличне патентне ліцензування через Open Specification Promise. Він складається з наступних відмінних елементів:
- Заголовок Fle
- Дані заголовка файлу
- Індексний вузол гілки
- Індексний листовий вузол
- (Файл) індекс зміщення
- (Item) індекс дескриптора
- Локальні дескриптори
- Тип таблиці елементів
Інформація заголовка
Структура HEADER файлу OST розташована на самому початку файлу зі зміщенням 0. Він містить інформацію метаданих про файл OST і інформацію ROOT для доступу до структур даних рівня NDB, описаних вище. Структура HEADER відрізняється для версій Unicode та ANSI формату файлу OST.
Заголовок починається з 4-байтового магічного слова !BDN, представленого байтами (0x21, 0x42, 0x44, 0x4E). Інше 2-байтове магічне число, SM (0x53, 0x4D), розташоване на зміщенні 8 від початку файлу. Інформація про версію (ANSI або Unicode) міститься зі зміщенням 10 від початку файлу. Шістнадцяткове значення (0x17) визначає OST-файл Unicode, тоді як 0x0E або 0x0F представляє формат файлу ANSI.
Поле | Опис |
---|---|
dwMagic (4 байти) | МАЄ бути “{ 0x21, 0x42, 0x44, 0x4E } ("!BDN”)" |
dwCRCPartial (4 байти) | 32-бітне значення CRC 471 байта даних, починаючи з wMagicClient (0ffset 0x0008) |
wMagicClient (2 байти) | МАЄ бути “{ 0x53, 0x4D}”. |
wVer (2 байти) | Версія формату файлу. Це значення ПОВИННО бути 14 або 15, якщо файл є файлом ANSI PST, і ПОВИННО бути 23, якщо файл є файлом Unicode PST. |
wVerClient (2 байти) | Версія формату файлу клієнта. Версія, яка відповідає формату, описаному в цьому документі, — 19. Творці нового файлу PST на основі цього документа СЛІД ініціалізувати це значення 19. |
bPlatformCreate (1 байт) | Це значення ПОВИННО мати значення 0x01. |
bPlatformAccess (1 байт) | Це значення ПОВИННО мати значення 0x01. |
dwЗарезервовано (8 байтів) | |
bidUnused (тільки 8 байтів Unicode) | Невикористане доповнення додано під час створення формату файлу Unicode PST. |
bidNextP (Unicode: 8 байтів; ANSI: 4 байти) | BID наступної сторінки. Сторінки мають спеціальний лічильник для призначення значень bidIndex. Значення bidIndex для BID для сторінок виділяється з цього лічильника. |
bidNextB (лише 4 байти ANSI): | Наступний BID. Це значення є монотонним лічильником, який вказує BID, який буде призначено для наступного виділеного блоку. Значення BID збільшуються з кроком 4. Для отримання додаткової інформації див. розділ 2.2.2.2. |
dwUnique (4 байти) | Це монотонно зростаюче значення, яке змінюється щоразу, коли змінюється структура HEADER файлу PST. Функція цього значення полягає в тому, щоб надати унікальне значення та переконатися, що CRC HEADER відрізняються після кожної модифікації заголовка. |
rgnid[] (128 байтів) | Фіксований масив із 32 NID, кожен з яких відповідає одному з 32 можливих NID_TYPE (NID_TYPE, NID_TYPE_NORMAL_FOLDER, NID_TYPE_SEARCH_FOLDER, NID_TYPE_NORMAL_MESSAGE,NID_TYPE_ASSOC_MESSAGE) |
qwUnused (8 bytes) | Невикористаний простір; ПОВИНЕН бути встановлений на нуль. Лише формат файлу Unicode PST. |
корінь (Unicode: 72 байти; ANSI: 40 байтів) | КОРЕНЕВА структура (розділ 2.2.2.5). |
dwAlign (4 bytes) | Невикористані байти вирівнювання; ПОВИНЕН бути встановлений на нуль. Лише формат файлу Unicode PST. |
rgbFM (128 байтів) | Застаріла FMap. Це більше не використовується і ПОВИННО бути заповнене 0xFF. Читачі ПОВИННІ ігнорувати значення цих байтів. |
rgbFP (128 байтів) | Застаріла FPMap. Це більше не використовується і ПОВИННО бути заповнене 0xFF. Читачі ПОВИННІ ігнорувати значення цих байтів. |
bSentinel (1 байт) | МАЄ бути встановлено на 0x80. |
bCryptMethod (1 байт) | Вказує, як закодовано дані у файлі PST. ПОВИННО бути встановлено одне із попередньо визначених значень (NDB_CRYPT_NONE, NDB_CRYPT_PERMUTE, NDB_CRYPT_CYCLIC). |
rgbЗарезервовано (2 байти) | Зарезервований; ПОВИНЕН бути встановлений на нуль. |
bidNextB (8 байтів) | Вказує на наступне доступне значення BID. Лише формат файлу Unicode PST. |
bidNextB (ТІЛЬКИ Unicode: 8 байтів) | Наступна BID. Це значення є монотонним лічильником, який вказує BID, який буде призначено для наступного виділеного блоку. Значення BID збільшуються з кроком 4. Для отримання додаткової інформації див. розділ 2.2.2.2. |
dwCRCFull (4 байти) | 32-бітне значення CRC 516 байтів даних, починаючи від wMagicClient до bidNextB включно. Лише формат файлу Unicode PST. |
ullReserved (8 байтів) | Зарезервовано; ПОВИНЕН бути встановлений на нуль. Лише формат файлу ANSI PST. |
dwReserved (4 байти) | Reserved; ПОВИНЕН бути встановлений на нуль. Лише формат файлу ANSI PST. |
rgbReserved2 (3 байти) | |
bЗарезервовано (1 байт) | |
rgbReserved3 (32 байти) |