OLFI
適用於:Outlook 2013 |Outlook 2016
個人資料夾檔案 (PST) 存放區提供者所使用的長期標識符結構佇列,以在離線模式中指派新訊息或資料夾的專案標識碼。
快速資訊
typedef struct {
ULONG ulVersion;
MAPIUID muidReserved;
ULONG ulReserved;
DWORD dwAlloc;
DWORD dwNextAlloc;
LTID ltidAlloc;
LTID ltidNextAlloc;
} OLFI, *POLFI;
成員
ulVersion
- 結構的版本號碼。
muidReserved
- 此成員保留供 Outlook 內部使用,不支援。
ulReserved
- 此成員保留供 Outlook 內部使用,不支援。
dwAlloc
- 可供配置的項目數。 這些項目共用相同的全域唯一標識碼 (GUID) 。
dwNextAlloc
- 接下來可供配置的項目數。 這些項目會共用相同的 GUID。
ltidAlloc
- 長期標識符結構 LTID,可識別目前可供配置的專案。 長期標識符結構包含 GUID 和索引,可識別存放區中的物件。 GUID 和索引一起可以形成物件的唯一項目標識符。
ltidNextAlloc
- 識別下一個可用項目的長期標識符結構。
註解
項目標識碼是資料夾或訊息的 4 位元組 MAPI 項目識別碼。 如需詳細資訊,請參閱 ENTRYID。
當 PST 存放區提供者將專案標識碼指派給新的物件時,它會先需要識別伺服器的 GUID,以及識別存放區中物件的索引。 雖然 GUID 並非所有專案識別碼中的唯一,但結合的 GUID 和索引會提供唯一的專案。 這個 GUID 和索引配對是由長期標識符結構 LTID 追蹤,這是 OLFI 結構的一部分。
PST 存放區提供者不會在 OLFI 中實際保留每個 GUID 索引組的 LTID 結構。 它會針對目前第一個可用的 GUID 索引組保留一個 LTID 結構 ltidAlloc;共用此相同 GUID 的可用項目數目 dwAlloc;以及第二個 LTID 結構 ltidNextAlloc,用於具有不同 GUID 的下一個可用 GUID 索引組。 PST 存放區提供者會使用 OLFI 結構來追蹤其已送出的 GUID 和索引。在虛擬層級,提供者會保留一些已準備好配置的 LTID 結構。 dwAlloc 會維護可用 LTID 結構的計數。
輸入標識碼的要求會以區塊為單位。 當有區塊的要求時,PST 存放區提供者會比較要求的大小與 dwAlloc,以檢查手上是否有足夠的保留。 如果有足夠的保留,它會傳回 ltidAlloc 中用於配置的 GUID 和索引。 然後,它會依要求的大小減少 dwAlloc ,並依要求的大小在 ltidAlloc 中遞增索引。 這會讓 PST 存放區提供者準備好在下一個要求上為另一個輸入標識符區塊配置 ltidAlloc 。 請注意,下一個要求的 GUID 保持不變。
如果要求的大小大於 dwAlloc,PST 存放區提供者會嘗試使用其下一個保留專案,如 dwNextAlloc 和 ltidNextAlloc 所指定。 它會將 dwNextAlloc 和 ltidNextAlloc 分別複製到 dwAlloc 和 ltidAlloc ,並將 dwNextAlloc 和 ltidNextAlloc 設定為 NULL。
包裝 PST 存放區提供者的提供者應該定期檢查 ltidNextAlloc ,以查看它是否為 NULL。 如果是,提供者應該使用新的 GUID 填入它,並重設 dwNextAlloc ,以便配置更多專案標識碼。