מהו קובץ OST?
OST או קבצי אחסון לא מקוונים מייצגים את נתוני תיבת הדואר של המשתמש במצב לא מקוון במחשב המקומי עם רישום ב-Exchange Server באמצעות Microsoft Outlook. זה נוצר אוטומטית בשימוש הראשון ב-Microsoft Outlook עם קישוריות לשרת. לאחר יצירת הקובץ, הנתונים מסונכרנים עם שרת הדוא"ל כך שהם יהיו זמינים במצב לא מקוון גם במקרה של ניתוק משרת הדוא"ל. קבצי OST יכולים להשתמש בפריטי תיבת דואר כגון מיילים, אנשי קשר, מידע על לוח שנה, הערות, משימות ונתונים דומים אחרים. משתמשים יכולים ליצור מיילים ופריטי נתונים אחרים בקובץ OST גם בהיעדר חיבור לשרת, אך אלה לא יסונכרנו עם השרת. לאחר יצירת החיבור, הקובץ המקומי מסונכרן שוב עם השרת כך שגם השרת וגם העותק המקומי נמצאים באותה רמת מידע.
פורמט קובץ OST
פורמט הקובץ OST (Offline Storage Table) ו-PST (Personal Storage Table) מורכבים מפורמט ה-Personal Folder File (PFF) המתאים לאחסון הודעות האימייל, אנשי הקשר והפגישות של המשתמש. הנתונים בקובץ PFF מאוחסנים ב-Little-endian כאשר כל התאריכים והשעות מיוצגים כ-FILETIME ב-UTC. [MS-PST] מגדיר שני סוגים של PFF:
- פורמט ANSI 32 סיביות
- פורמט Unicode 64 סיביות
פורמט קובץ PST מפרטים, כזמין מ-Microsoft, חלים גם על פורמט קובץ OST כחופשי ו רישוי פטנט בלתי חוזר באמצעות הבטחת המפרט הפתוח. זה מורכב מהאלמנטים הבאים להבחין:
- כותרת פלי
- נתוני כותרות קבצים
- צומת סניף אינדקס
- צומת עלה אינדקס
- (קובץ) אינדקס קיזוז
- אינדקס מתאר (פריט).
- מתארים מקומיים
- סוג טבלת פריט
מידע על כותרת
מבנה HEADER של קובץ OST ממוקם ממש בתחילת הקובץ ב-0 offset. הוא מכיל מידע מטא נתונים על קובץ OST ומידע ROOT כדי לגשת למבני הנתונים של שכבת NDB שתוארו לעיל. מבנה HEADER שונה עבור גרסאות Unicode ו-ANSI של פורמט קובץ OST.
הכותרת מתחילה במילת קסם של 4 בתים !BDN המיוצגת על ידי בתים (0x21, 0x42, 0x44, 0x4E). מספר קסם נוסף של 2 בתים, SM (0x53, 0x4D), ממוקם בהיסט 8 מתחילת הקובץ. מידע הגרסה (ANSI או Unicode) נמצא בהיסט של 10 מתחילת הקובץ. ערך Hex (0x17) מציין קובץ Unicode OST בעוד ש-0x0E או 0x0F מייצגים פורמט קובץ ANSI.
שדה | תיאור |
---|---|
dwMagic (4 בתים) | חייב להיות “{ 0x21, 0x42, 0x44, 0x4E } ("!BDN”)" |
dwCRCPartial (4 בתים) | ערך CRC של 32 סיביות של 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. |
dwReserved (8 בתים) | |
bidUnused (8 בתים Unicode בלבד) | ריפוד לא בשימוש נוסף כאשר פורמט קובץ ה-Unicode PST נוצר. |
bidNextP (Unicode: 8 בתים; ANSI: 4 בתים) | BID בעמוד הבא. לדפים יש מונה מיוחד להקצאת ערכי bidIndex. הערך של bidIndex עבור הצעות מחיר עבור דפים מוקצה ממונה זה. |
bidNextB (4 בתים ANSI בלבד): | BID הבא. ערך זה הוא המונה המונוטוני המציין את ה-BID שיש להקצות לבלוק המוקצה הבא. ערכי BID מתקדמים במרווחים של 4. לפרטים נוספים, ראה סעיף 2.2.2.2. |
dwUnique (4 בתים) | זהו ערך מונוטוני שעולה בשינוי בכל פעם שמבנה HEADER של קובץ ה-PST משתנה. תפקידו של ערך זה הוא לספק ערך ייחודי, ולהבטיח ש-HEADER CRCs שונים לאחר כל שינוי כותרת. |
rgnid[] (128 בתים) | מערך קבוע של 32 NIDs, כל אחד מתאים לאחד מ-32 ה-NID_TYPEs האפשריים (NID_TYPE, NID_TYPE_NORMAL_FOLDER, NID_TYPE_SEARCH_FOLDER, NID_TYPE_NORMAL_MESSAGE,NID_MESSAGE)_ASS_MESSAGE) |
qwUnused (8 בתים) | שטח לא בשימוש; חייב להיות מוגדר לאפס. פורמט קובץ PST של Unicode בלבד. |
root (Unicode: 72 בתים; ANSI: 40 בתים) | מבנה ROOT (סעיף 2.2.2.5). |
dwAlign (4 בתים) | בתי יישור שאינם בשימוש; חייב להיות מוגדר לאפס. פורמט קובץ PST של Unicode בלבד. |
rgbFM (128 בתים) | FMap שהוצא משימוש. זה כבר לא בשימוש ויש למלא אותו ב-0xFF. הקוראים צריכים להתעלם מהערך של בתים אלה. |
rgbFP (128 בתים) | FPMap שהוצא משימוש. זה כבר לא בשימוש ויש למלא אותו ב-0xFF. הקוראים צריכים להתעלם מהערך של בתים אלה. |
bSentinel (1 בייט) | חייב להיות מוגדר ל-0x80. |
bCryptMethod (1 בתים) | מציין כיצד הנתונים בתוך קובץ ה-PST מקודדים. חייב להיות מוגדר לאחד מהערכים המוגדרים מראש (NDB_CRYPT_NONE, NDB_CRYPT_PERMUTE, NDB_CRYPT_CYCLIC). |
rgbReserved (2 בתים) | שמורות; חייב להיות מוגדר לאפס. |
bidNextB (8 בתים) | מציין את ערך BID הזמין הבא. פורמט קובץ PST של Unicode בלבד. |
bidNextB (יוניקוד בלבד: 8 בתים) | הצעת מחיר הבאה. ערך זה הוא המונה המונוטוני המציין את ה-BID שיש להקצות לבלוק המוקצה הבא. ערכי BID מתקדמים במרווחים של 4. לפרטים נוספים, ראה סעיף 2.2.2.2. |
dwCRCFull (4 בתים) | ערך CRC של 32 סיביות של 516 בתים של נתונים החל מ-wMagicClient ועד bidNextB, כולל. פורמט קובץ PST של Unicode בלבד. |
ullReserved (8 בתים) | שמורה; חייב להיות מוגדר לאפס. פורמט קובץ ANSI PST בלבד. |
dwReserved (4 בתים) | שמורה; חייב להיות מוגדר לאפס. פורמט קובץ ANSI PST בלבד. |
rgbReserved2 (3 בתים) | |
bשמורה (1 בייט) | |
rgbReserved3 (32 בתים) |