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


Функция DumpLogRecords (clfsw32.h)

Сканирует указанный журнал; фильтрует записи журнала по типу записи; и помещает записи в поток выходных файлов, который открывает вызывающий объект.

Синтаксис

CLFSUSER_API BOOL DumpLogRecords(
  [in]           PWSTR                     pwszLogFileName,
  [in]           CLFS_RECORD_TYPE          fRecordType,
  [in, optional] PCLFS_LSN                 plsnStart,
  [in, optional] PCLFS_LSN                 plsnEnd,
  [in, optional] PFILE                     pstrmOut,
  [in, optional] CLFS_PRINT_RECORD_ROUTINE pfnPrintRecord,
  [in, optional] CLFS_BLOCK_ALLOCATION     pfnAllocBlock,
  [in, optional] CLFS_BLOCK_DEALLOCATION   pfnFreeBlock,
  [in, optional] PVOID                     pvBlockAllocContext,
  [in]           ULONG                     cbBlock,
  [in]           ULONG                     cMaxBlocks
);

Параметры

[in] pwszLogFileName

Имя потока журнала.

Это имя указывается при создании журнала с помощью CreateLogFile. В следующем примере идентифицируется используемый формат:

Журнала:<имя>журнала[::<имя >потока журнала]

<имя> журнала соответствует допустимому пути к файлу в файловой системе.

<имя> потока журнала — это уникальное имя потока журнала в журнале.

Дополнительные сведения см. в разделе Типы журналов.

[in] fRecordType

Тип записей для чтения.

Этот параметр может быть одной или несколькими из следующих констант CLFS_RECORD_TYPE.

Значение Значение
ClfsNullRecord
По умолчанию используется тип записи ClfsDataRecord .
ClfsDataRecord
Записи пользовательских данных считываются.
ClfsRestartRecord
Записи перезапуска считываются.
ClfsClientRecord
Считываются как записи перезапуска, так и записи данных.
ClfsClientRecord
Задает маску для всех допустимых данных или записей перезапуска.

[in, optional] plsnStart

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

Если указан этот параметр, номер LSN должен быть адресом допустимой записи журнала в активной части журнала; В противном случае вызов завершается сбоем с состоянием ERROR_INVALID_PARAMETER.

Если этот параметр не указан, начало последовательности дампа будет началом активного журнала.

[in, optional] plsnEnd

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

Если этот номер LSN находится после конца диапазона LSN, функция возвращает ERROR_HANDLE_EOF.

В отличие от plsnStart, это значение не обязательно должно быть номером LSN допустимой записи в активном журнале, но может быть любым допустимым номером LSN. В выходной поток помещаются только записи со значением LSN меньше или равным plsnEnd .

Если этот параметр имеет значение NULL, функция дампа использует последний номер LSN в активном журнале (в заголовке журнала).

[in, optional] pstrmOut

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

Если этот параметр не указан, в качестве значения по умолчанию используется stdout.

[in, optional] pfnPrintRecord

Определяемая пользователем подпрограмма обратного вызова, которая форматирует пользовательские буферы и выводит их в выходной поток pstrmOut.

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

Если этот параметр имеет значение NULL, DumpLogRecords помещает данные записи пользователя в выходной поток в виде шестнадцатеричных цифр.

[in, optional] pfnAllocBlock

Функция обратного вызова, которая выделяет память для блоков журнала.

Если этот параметр имеет значение NULL, общая файловая система журналов (CLFS) предоставляет функцию выделения блоков по умолчанию. Этот параметр не может иметь значение NULL , если обратный вызов с освобождением блоков указан с помощью параметра pfnFreeBuffer .

В следующем примере идентифицируется синтаксис функции обратного вызова выделения блоков:

typedef PVOID (* CLFS_BLOCK_ALLOCATION) (voidULONG cbBufferSize, PVOID pvUserContext);

[in, optional] pfnFreeBlock

Функция обратного вызова, которая освобождает блоки журнала, выделенные pfnAllocBuffer.

Если этот параметр имеет значение NULL, CLFS предоставляет функцию освобождения блока по умолчанию. Этот параметр не может иметь значение NULL , если обратный вызов выделения блоков указан с помощью параметра pfnAllocBuffer .

В следующем примере идентифицируется синтаксис функции обратного вызова для освобождения блоков:

typedef void (* CLFS_BLOCK_DEALLOCATION) (PVOID pvBuffer, PVOID pvUserContext);

Параметр буфера ClfsBlockDeallocProc должен указывать на блок, выделенный с помощью обратного вызова, на который указывает pfnAllocBuffer.

[in, optional] pvBlockAllocContext

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

Если pfnAllocBuffer имеет значение NULL, этот параметр игнорируется.

[in] cbBlock

Размер буфера, в который маршалируются записи, в байтах.

Записи нельзя добавлять или считывать, если они длиннее этого значения.

[in] cMaxBlocks

Максимальное количество блоков, которые можно выделить в любое время для операций чтения.

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

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

Если функция выполняется успешно, возвращается ненулевое значение.

Если функция завершается сбоем, возвращаемое значение равно нулю (0). Дополнительные сведения об ошибке можно получить, вызвав GetLastError. В следующем списке указаны возможные коды ошибок:

Требования

Требование Значение
Минимальная версия клиента Windows Vista [только классические приложения]
Минимальная версия сервера Windows Server 2003 R2 [только классические приложения]
Целевая платформа Windows
Header clfsw32.h
Библиотека Clfsw32.lib
DLL Clfsw32.dll

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

CLFS_LSN

CLFS_RECORD_TYPE

Общие функции файловой системы журнала