Функция ClfsReadLogRecord (wdm.h)

Подпрограмма ClfsReadLogRecord считывает целевую запись в потоке CLFS и возвращает контекст чтения, который вызывающий объект может использовать для чтения записей, предшествующих или следующих за ней, в потоке.

Синтаксис

CLFSUSER_API NTSTATUS ClfsReadLogRecord(
  [in]      PVOID             pvMarshalContext,
  [in, out] PCLFS_LSN         plsnFirst,
  [in]      CLFS_CONTEXT_MODE peContextMode,
  [out]     PVOID             *ppvReadBuffer,
  [out]     PULONG            pcbReadBuffer,
  [out]     PCLFS_RECORD_TYPE peRecordType,
  [out]     PCLFS_LSN         plsnUndoNext,
  [out]     PCLFS_LSN         plsnPrevious,
  [out]     PVOID             *ppvReadContext
);

Параметры

[in] pvMarshalContext

Указатель на непрозрачный контекст, представляющий область маршалинга. Вызывающий объект ранее получил этот указатель, вызвав ClfsCreateMarshallingArea.

[in, out] plsnFirst

Указатель на структуру CLFS_LSN , которая предоставляет номер LSN целевой записи в журнале.

[in] peContextMode

Значение из перечисления CLFS_CONTEXT_MODE , указывающее начальный режим (ClfsContextUndoNext, ClfsContextPrevious или ClfsContextForward) контекста чтения, возвращаемого в ppvReadContext.

[out] ppvReadBuffer

Указатель на переменную, которая получает указатель на буфер данных целевой записи.

[out] pcbReadBuffer

Указатель на переменную типа ULONG, которая получает размер буфера в байтах, на который указывает *ppvReadBuffer. Это длина буфера данных целевой записи.

[out] peRecordType

Указатель на переменную типа CLFS_RECORD_TYPE, которая получает одно из следующих значений.

Значение Значение
ClfsDataRecord Целевая запись — это запись данных.
ClfsRestartRecord Целевая запись является записью перезапуска.

[out] plsnUndoNext

Указатель на структуру CLFS_LSN , которая получает номер LSN отката следующей целевой записи.

[out] plsnPrevious

Указатель на структуру CLFS_LSN , которая получает предыдущий номер LSN целевой записи.

[out] ppvReadContext

Указатель на переменную, получающую указатель на непрозрачный контекст чтения. Клиент неоднократно передает этот контекст в ClfsReadNextLogRecord для чтения оставшихся записей в последовательности. После того как клиент считает все записи в последовательности, он вызывает ClfsTerminateReadLog , чтобы освободить контекст чтения.

Возвращаемое значение

ClfsReadLogRecord возвращает STATUS_SUCCESS в случае успешного выполнения; в противном случае возвращается один из кодов ошибок, определенных в ntstatus.h.

Комментарии

Чтобы избежать утечки памяти, необходимо вызвать ClfsTerminateReadLog после завершения использования контекста чтения.

Описание концепций и терминологии CLFS см. в разделе Common Log File System.

Сведения о чтении записей из потоков CLFS см. в разделах Чтение записей данных из Stream CLFS и Чтение записей перезапуска из Stream CLFS.

Контексты чтения не являются потокобезопасны. Клиенты отвечают за сериализацию доступа к контекстам чтения.

Требования

Требование Значение
Минимальная версия клиента Доступно в Windows Server 2003 R2, Windows Vista и более поздних версиях Windows.
Целевая платформа Персональный компьютер
Верхняя часть wdm.h (включая Wdm.h)
Библиотека Clfs.lib
DLL Clfs.sys
IRQL <= APC_LEVEL

См. также раздел

ClfsReadNextLogRecord

ClfsTerminateReadLog