Функция 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.
[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 |