Функция ReadNextLogRecord (clfsw32.h)
Считывает следующую запись в последовательности, инициированной вызовом ReadLogRecord или ReadLogRestartArea. С помощью readNextLogRecord итеративно клиент может считывать все записи указанного типа в журнале. Направление перечисления определяется указанием режима контекста при запуске последовательности чтения.
Синтаксис
CLFSUSER_API BOOL ReadNextLogRecord(
[in, out] PVOID pvReadContext,
[out] PVOID *ppvBuffer,
[out] PULONG pcbBuffer,
[in, out] PCLFS_RECORD_TYPE peRecordType,
[in, optional] PCLFS_LSN plsnUser,
[out] PCLFS_LSN plsnUndoNext,
[out] PCLFS_LSN plsnPrevious,
[out] PCLFS_LSN plsnRecord,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Параметры
[in, out] pvReadContext
Указатель на контекст чтения, который система выделяет и создает во время успешного вызова ReadLogRecord или ReadLogRestartArea.
Если функция откладывает завершение операции, она возвращает указатель на допустимый контекст чтения и состояние ошибки ERROR_IO_PENDING. Сведения об обработке асинхронного завершения см. в разделе Примечания этого раздела.
[out] ppvBuffer
Указатель на переменную, получающую указатель на считываемые данные.
[out] pcbBuffer
Указатель на переменную, которая получает размер считываемых данных, возвращаемых в ppvReadBuffer, в байтах.
[in, out] peRecordType
Указатель, который на входных данных указывает фильтр типов записей для следующего чтения записи, а для выходных данных указывает тип возвращаемой записи.
Клиенты могут указать любой из следующих типов записей.
Значение | Значение |
---|---|
|
Считываются только записи данных пользователя. |
|
Считываются только записи перезапуска. |
|
Все записи перезапуска и данных считываются. |
[in, optional] plsnUser
Указатель на структуру CLFS_LSN , указывающую клиент журнала для чтения этого номера журнала (LSN) в качестве следующего номера LSN вместо чтения вперед к следующей записи, чтения предыдущего номера LSN или чтения следующего номера LSN отмены.
Этот параметр позволяет клиентам журналов выполнять курсор через определяемые пользователем цепочки LSN в клиентских буферах. Связь этого параметра с текущим номером LSN, удерживаемым контекстом чтения, должна соответствовать режиму контекста ecxMode, указанному в точках входа ReadLogRecord ; в противном случае возвращается код ошибки ERROR_INVALID_PARAMETER .
[out] plsnUndoNext
Указатель на структуру CLFS_LSN , которая получает номер LSN следующей записи в цепочке отмены записей.
[out] plsnPrevious
Указатель на структуру CLFS_LSN , которая получает номер LSN следующей записи в предыдущей цепочке записей.
[out] plsnRecord
Указатель на структуру CLFS_LSN , которая получает номер LSN текущей записи, считываемой в контекст чтения.
[in, out, optional] pOverlapped
Указатель на структуру OVERLAPPED , необходимую для асинхронной операции.
Этот параметр может иметь значение NULL , если асинхронная операция не используется.
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
В следующем списке указаны возможные коды ошибок:
Комментарии
Если функция ReadNextLogRecord возвращается с кодом состояния ERROR_IO_PENDING, клиент должен синхронизировать его выполнение с отложенным завершением перекрывающейся операции ввода-вывода с помощью GetOverlappedResult или одной из функций ожидания синхронизации. Дополнительные сведения см. в разделе Синхронизация и перекрытие входных и выходных данных.
После асинхронного завершения ReadNextLogRecord запрошенная запись считывается с диска, но не разрешается в указатель в *ppvReadBuffer. Чтобы получить допустимый указатель на запись, клиент должен вызвать ReadNextLogRecord во второй раз.
Контексты чтения CLFS не должны передаваться в несколько асинхронных операций чтения за раз, в противном случае функция завершается сбоем с ERROR_READ.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | clfsw32.h |
Библиотека | Clfsw32.lib |
DLL | Clfsw32.dll |