Поделиться через


OLFI

Область применения: Outlook 2013 | Outlook 2016

Очередь структур долгосрочных идентификаторов, используемых поставщиком хранилища файлов личных папок (PST) для назначения идентификатора записи для нового сообщения или папки в автономном режиме.

Краткие сведения

typedef struct { 
    ULONG    ulVersion; 
    MAPIUID  muidReserved; 
    ULONG    ulReserved; 
    DWORD    dwAlloc; 
    DWORD    dwNextAlloc; 
    LTID     ltidAlloc; 
    LTID     ltidNextAlloc; 
} OLFI, *POLFI;

Members

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 структуру LTID для каждой пары GUID-индекса. Он сохраняет одну структуру LTID , ltidAlloc, для первой доступной пары GUID-индекса; количество доступных записей, использующих этот идентификатор GUID, dwAlloc; и вторая структура LTID , ltidNextAlloc, для следующей доступной пары GUID-индекс, которая имеет другой GUID. Поставщик хранилища PST использует структуру OLFI для отслеживания идентификаторов GUID и индексов, которые он раздал. На виртуальном уровне поставщик поддерживает резерв из нескольких структур LTID , которые готовы к выделению. DwAlloc поддерживает количество доступных структур LTID .

Запросы на входные идентификаторы поступают блоками. При запросе блока поставщик хранилища PST проверяет наличие достаточного резерва, сравнивая запрошенный размер с dwAlloc. При наличии достаточного резерва он возвращает GUID и индекс в ltidAlloc для выделения. Затем он уменьшает dwAlloc на запрошенный размер и увеличивает индекс в ltidAlloc на запрошенный размер. Это подготовит поставщика хранилища PST к выделению ltidAlloc при следующем запросе для другого блока идентификаторов входа. Обратите внимание, что GUID остается прежним для следующего запроса.

Если размер запроса больше dwAlloc, поставщик хранилища PST пытается использовать то, что у него есть в резерве, как указано в dwNextAlloc и ltidNextAlloc. Он копирует dwNextAlloc и ltidNextAlloc в dwAlloc и ltidAlloc соответственно и устанавливает dwNextAlloc и ltidNextAlloc значение NULL.

Поставщик, который заключает в оболочку поставщика хранилища PST, должен периодически проверка ltidNextAlloc, чтобы узнать, имеет ли он значение NULL. Если это так, поставщик должен заполнить его новым ИДЕНТИФИКАТОРом GUID и сбросить dwNextAlloc , чтобы можно было выделить больше идентификаторов записей.

См. также

Сведения об API репликации О LTIDконечного компьютера репликации