OLFI

適用対象: Outlook 2013 | Outlook 2016

個人用フォルダー ファイル (PST) ストア プロバイダーがオフライン モードで新しいメッセージまたはフォルダーのエントリ ID を割り当てるために使用する長期 ID 構造のキュー。

クイック ヒント

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

  • 割り当てに現在使用できるエントリを識別する長期 ID 構造体 LTID。 長期的な ID 構造体には、ストア内のオブジェクトを識別する GUID とインデックスが含まれています。 GUID とインデックスを組み合わせて、オブジェクトの一意のエントリ ID を形成できます。

ltidNextAlloc

  • 次に使用可能なエントリを識別する長期 ID 構造体。

注釈

エントリ ID は、フォルダーまたはメッセージの 4 バイト MAPI エントリ識別子です。 詳細については、「 ENTRYID」を参照してください。

PST ストア プロバイダーが新しいオブジェクトにエントリ ID を割り当てると、まずサーバーを識別する GUID と、ストア内のオブジェクトを識別するインデックスが必要です。 GUID はすべてのエントリ ID で一意ではありませんが、GUID とインデックスの組み合わせによって一意のエントリが提供されます。 この GUID とインデックスのペアは、OLFI 構造体の一部である長期的な ID 構造体 LTID によって追跡されます。

PST ストア プロバイダーは、GUID とインデックスのペアごとに LTID 構造体を OLFI に物理的に保持しません。 現在使用可能な最初の GUID インデックス ペアに対して、ltidAlloc という 1 つの LTID 構造体が保持されます。この同じ GUID を共有する使用可能なエントリの数の dwAlloc。および 2 つ目の LTID 構造体 ltidNextAlloc は、別の GUID を持つ次に使用可能な GUID とインデックスのペアです。 PST ストア プロバイダーは 、OLFI 構造体を使用して、渡された GUID とインデックスを追跡します。仮想レベルでは、プロバイダーは、割り当てる準備ができている多数の LTID 構造体の予約を維持します。 dwAlloc は、使用可能な LTID 構造体の数を保持します。

エントリ ID の要求はブロック単位で行われます。 ブロックの要求がある場合、PST ストア プロバイダーは、要求されたサイズを dwAlloc と比較することで、手元に十分な予約があるかどうかを確認します。 十分な予約がある場合は、割り当てのために ltidAlloc の GUID とインデックスを返します。 その後、要求されたサイズによって dwAlloc が減少し、 ltidAlloc のインデックスが要求されたサイズだけインクリメントされます。 これにより、PST ストア プロバイダーは、エントリ ID の別のブロックに対する次の要求で ltidAlloc を割り当てる準備が整います。 GUID は次の要求でも同じであることに注意してください。

要求のサイズが dwAlloc より大きい場合、PST ストア プロバイダーは、 dwNextAllocltidNextAlloc で指定されているように、次に予約されているものを使用しようとします。 dwNextAllocltidNextAlloc をそれぞれ dwAllocltidAlloc にコピーし、dwNextAllocltidNextAlloc を NULL に設定します。

PST ストア プロバイダーをラップするプロバイダーは、ltidNextAlloc を定期的にチェックして、NULL かどうかを確認する必要があります。 その場合、プロバイダーは新しい GUID を設定し、 dwNextAlloc をリセットして、より多くのエントリ ID を割り当てることができるようにする必要があります。

関連項目

レプリケーション API について レプリケーションステート マシンLTID について