Функция ReadPreviousLogRestartArea (clfsw32.h)
Считывает предыдущую область перезапуска журнала относительно текущей записи перезапуска, указанной в контексте чтения pvReadContext. Этот контекст чтения создан ранее при вызове ReadLogRestartArea.
Синтаксис
CLFSUSER_API BOOL ReadPreviousLogRestartArea(
[in] PVOID pvReadContext,
[out] PVOID *ppvRestartBuffer,
[out] PULONG pcbRestartBuffer,
[out] PCLFS_LSN plsnRestart,
[in, out, optional] LPOVERLAPPED pOverlapped
);
Параметры
[in] pvReadContext
Указатель на выделенный системой контекст чтения, возвращающий readLogRestartArea .
Даже если эти функции возвращают ERROR_IO_PENDING, они по-прежнему возвращают указатель на допустимый контекст чтения. Сведения об асинхронном завершении см. в разделе Примечания этой статьи.
[out] ppvRestartBuffer
Указатель на переменную, получающую указатель на данные перезапуска.
[out] pcbRestartBuffer
Указатель на переменную, которая получает размер данных перезапуска в *ppvRestartBuffer в байтах.
[out] plsnRestart
Указатель на структуру CLFS_LSN , которая получает номер журнала (LSN) области перезапуска, возвращаемой этой функцией.
[in, out, optional] pOverlapped
Указатель на структуру OVERLAPPED , необходимую для асинхронной операции.
Если асинхронная операция не используется, этот параметр может иметь значение NULL .
Возвращаемое значение
Если функция выполняется успешно, возвращается ненулевое значение.
Если функция выполняется неудачно, возвращается нулевое значение. Дополнительные сведения об ошибке можно получить, вызвав GetLastError.
В следующем списке указаны возможные коды ошибок:
Комментарии
Сообщение об ошибке ERROR_LOG_BLOCK_INCOMPLETE возвращается, если размер блока журнала, заданный параметром CreateLogMarshallingArea , недостаточно велик для хранения полного блока журнала.
Если сбой ReadPreviousLogRestartArea с кодом ошибки ERROR_IO_PENDING, указатель на допустимый контекст чтения помещается в переменную, на которую указывает параметр ppvReadContext .
Чтобы завершить копирование записи журнала, клиент должен сначала синхронизировать его выполнение с отложенным завершением перекрывающейся операции ввода-вывода с помощью GetOverlappedResult или одной из функций ожидания синхронизации. Дополнительные сведения см. в разделе Синхронизация и перекрытие входных и выходных данных.
После асинхронного завершения ReadPreviousLogRestartArea запрошенная область перезапуска считывается с диска, но допустимый указатель на нее не помещается в *ppvRestartBuffer.
Чтобы получить допустимый указатель, клиент должен вызвать ReadPreviousLogRestartArea второй раз.
Контексты чтения CLFS не должны передаваться в несколько асинхронных операций чтения за раз, иначе функция завершается сбоем с ERROR_READ.
Требования
Требование | Значение |
---|---|
Минимальная версия клиента | Windows Vista [только классические приложения] |
Минимальная версия сервера | Windows Server 2003 R2 [только классические приложения] |
Целевая платформа | Windows |
Header | clfsw32.h |
Библиотека | Clfsw32.lib |
DLL | Clfsw32.dll |