#include "lfsprocs.h"
Go to the source code of this file.
Defines | |
#define | Dbg (DEBUG_TRACE_REGISTRY) |
Functions | |
PLFCB | LfsRestartLogFile (IN PFILE_OBJECT LogFile, IN USHORT MaximumClients, IN ULONG LogPageSize OPTIONAL, IN LONGLONG FileSize, IN OUT PLFS_INFO LfsInfo, OUT PLFS_WRITE_DATA WriteData) |
VOID | LfsNormalizeBasicLogFile (IN OUT PLONGLONG FileSize, IN OUT PULONG LogPageSize, IN OUT PUSHORT LogClients, IN BOOLEAN UseDefaultLogPage) |
VOID | LfsUpdateLfcbFromPgHeader (IN PLFCB Lfcb, IN ULONG SystemPageSize, IN ULONG LogPageSize, IN SHORT MajorVersion, IN SHORT MinorVersion, IN BOOLEAN PackLog) |
VOID | LfsUpdateLfcbFromNoRestart (IN PLFCB Lfcb, IN LONGLONG FileSize, IN LSN LastLsn, IN ULONG LogClients, IN ULONG OpenLogCount, IN BOOLEAN LogFileWrapped, IN BOOLEAN UseMultiplePageIo) |
VOID | LfsUpdateLfcbFromRestart (IN PLFCB Lfcb, IN PLFS_RESTART_AREA RestartArea, IN USHORT RestartOffset) |
VOID | LfsUpdateRestartAreaFromLfcb (IN PLFCB Lfcb, IN PLFS_RESTART_AREA RestartArea) |
VOID | LfsInitializeLogFilePriv (IN PLFCB Lfcb, IN BOOLEAN ForceRestartToDisk, IN ULONG RestartAreaSize, IN LONGLONG StartOffsetForClear, IN BOOLEAN ClearLogFile) |
VOID | LfsFindLastLsn (IN OUT PLFCB Lfcb) |
BOOLEAN | LfsCheckSubsequentLogPage (IN PLFCB Lfcb, IN PLFS_RECORD_PAGE_HEADER RecordPageHeader, IN LONGLONG LogFileOffset, IN LONGLONG SequenceNumber) |
VOID | LfsFlushLogPage (IN PLFCB Lfcb, PVOID LogPage, IN LONGLONG FileOffset, OUT PBCB *Bcb) |
VOID | LfsRemoveClientFromList (IN PLFS_CLIENT_RECORD ClientArray, IN PLFS_CLIENT_RECORD ClientRecord, IN PUSHORT ListHead) |
VOID | LfsAddClientToList (IN PLFS_CLIENT_RECORD ClientArray, IN USHORT ClientIndex, IN PUSHORT ListHead) |
VOID | LfsInitializeLogFile (IN PFILE_OBJECT LogFile, IN USHORT MaximumClients, IN ULONG LogPageSize OPTIONAL, IN LONGLONG FileSize, OUT PLFS_WRITE_DATA WriteData) |
ULONG | LfsOpenLogFile (IN PFILE_OBJECT LogFile, IN UNICODE_STRING ClientName, IN USHORT MaximumClients, IN ULONG LogPageSize OPTIONAL, IN LONGLONG FileSize, IN OUT PLFS_INFO LfsInfo, OUT PLFS_LOG_HANDLE LogHandle, OUT PLFS_WRITE_DATA WriteData) |
VOID | LfsCloseLogFile (IN LFS_LOG_HANDLE LogHandle) |
VOID | LfsDeleteLogHandle (IN LFS_LOG_HANDLE LogHandle) |
VOID | LfsReadLogFileInformation (IN LFS_LOG_HANDLE LogHandle, IN PLOG_FILE_INFORMATION Buffer, IN OUT PULONG Length) |
BOOLEAN | LfsVerifyLogFile (IN LFS_LOG_HANDLE LogHandle, IN PVOID LogFileHeader, IN ULONG Length) |
VOID | LfsResetUndoTotal (IN LFS_LOG_HANDLE LogHandle, IN ULONG NumberRecords, IN LONG ResetTotal) |
VOID | LfsUpdateLfcbFromRestart (IN OUT PLFCB Lfcb, IN PLFS_RESTART_AREA RestartArea, IN USHORT RestartOffset) |
VOID | LfsRemoveClientFromList (PLFS_CLIENT_RECORD ClientArray, PLFS_CLIENT_RECORD ClientRecord, IN PUSHORT ListHead) |
|
Definition at line 28 of file lfs/registry.c. |
|
Definition at line 4463 of file lfs/registry.c. References Dbg, DebugTrace, LFS_NO_CLIENT, _LFS_CLIENT_RECORD::NextClient, PAGED_CODE, and _LFS_CLIENT_RECORD::PrevClient. Referenced by LfsCloseLogFile(), and LfsOpenLogFile().
|
|
Definition at line 4188 of file lfs/registry.c. References Dbg, DebugTrace, FALSE, LFS_SIGNATURE_UNINITIALIZED_ULONG, LfsLsnToSeqNumber, LfsTruncateLsnToLogPage, LSN, PAGED_CODE, and TRUE. Referenced by LfsFindLastLsn().
|
|
Definition at line 706 of file lfs/registry.c. References _LBCB::ActiveLinks, Add2Ptr, CcUnpinDataForThread(), ClearFlag, _LFCB::ClientArray, _LCH::ClientArrayByteOffset, _LFS_RESTART_AREA::ClientFreeList, _LCH::ClientId, _LFS_CLIENT_ID::ClientIndex, _LFS_RESTART_AREA::ClientInUseList, _LFS_CLIENT_RECORD::ClientRestartLsn, Dbg, DebugTrace, DebugUnwind, _LFCB_SYNC::Event, Executive, FALSE, FlagOn, _LFCB::Flags, KernelMode, KeWaitForSingleObject(), LBCB_NOT_EMPTY, LBCB_ON_ACTIVE_QUEUE, _LFCB::LbcbActive, _LBCB::LbcbFlags, _LFCB::LbcbWorkque, _LCH::LchLinks, _LCH::Lfcb, LFCB_FINAL_SHUTDOWN, _LFCB::LfcbLinks, LFS_NO_CLIENT, LfsAcquireLch, LfsAcquireLfcb, LfsAcquireLfsData, LfsAddClientToList(), LfsCloseLogFile(), LfsDeallocateLbcb(), LfsDeallocateLfcb(), LfsExceptionFilter(), _LFCB::LfsIoState, LfsLbcbIsRestart, LfsNoIoInProgress, LfsReleaseLch, LfsReleaseLfcb, LfsReleaseLfsData, LfsRemoveClientFromList(), LfsValidateClientId, LfsValidateLch, LfsWriteLfsRestart(), LfsZeroLsn, _LBCB::LogPageBcb, NTSTATUS(), NULL, PAGED_CODE, _LBCB::ResourceThread, _LFCB::RestartArea, _LFCB::RestartAreaSize, _LFS_CLIENT_RECORD::SeqNumber, SetFlag, Status, _LFCB::Sync, TRUE, try_return, USHORT, _LFCB::Waiters, and _LBCB::WorkqueLinks. Referenced by LfsCloseLogFile().
|
|
Definition at line 1063 of file lfs/registry.c. References ExDeleteResource, ExFreePool(), LFS_NTC_LCH, LfsAcquireLch, LfsDeallocateLch, LfsExceptionFilter(), LfsReleaseLch, _LCH::NodeTypeCode, NULL, PAGED_CODE, _LFCB_SYNC::Resource, _LCH::Sync, and _LFCB_SYNC::UserCount.
|
|
Definition at line 3193 of file lfs/registry.c. References CcUnpinData(), ClearFlag, _LFS_RECORD_PAGE_HEADER::Copy, Dbg, DebugTrace, DebugUnwind, ExRaiseStatus(), FALSE, FlagOn, _LFS_RECORD_PAGE_HEADER::Header, LFCB_LOG_WRAPPED, LFCB_NO_LAST_LSN, LFCB_PACK_LOG, LFCB_REUSE_TAIL, LFS_SIGNATURE_BAD_USA_ULONG, LFS_SIGNATURE_RECORD_PAGE_ULONG, LfsCheckSubsequentLogPage(), LfsFindLastLsn(), LfsFlushLogPage(), LfsLi0, LfsLsnToSeqNumber, LfsNextLogPageOffset(), LfsPinOrMapData(), LOG_PAGE_LOG_RECORD_END, LSN, _LFS_RECORD_PAGE_HEADER::MultiSectorHeader, NT_SUCCESS, NTSTATUS(), NULL, PAGED_CODE, RESTART_SINGLE_PAGE_IO, SetFlag, _MULTI_SECTOR_HEADER::Signature, Status, TRUE, and USHORT. Referenced by LfsFindLastLsn(), and LfsRestartLogFile().
|
|
Definition at line 4321 of file lfs/registry.c. References CcFlushCache(), CcSetDirtyPinnedData(), CcUnpinData(), NULL, and PAGED_CODE. Referenced by LfsFindLastLsn(), and LfsInitializeLogFilePriv().
|
|
Definition at line 150 of file lfs/registry.c. References Add2Ptr, CcSetAdditionalCacheAttributes(), _LFCB::ClientArray, _LFCB::ClientArrayOffset, Dbg, DebugTrace, DebugUnwind, ExRaiseStatus(), FALSE, _LFCB::FileObject, _LFCB::FirstLogPage, _LFCB::InitialRestartArea, KeQuerySystemTime(), _LFCB::LfcbLinks, _LFS_DATA::LfcbLinks, LFS_DEFAULT_LOG_PAGE_SIZE, LfsAcquireLfcb, LfsAcquireLfsData, LfsAllocateLfcb(), LfsAllocateRestartArea, LfsData, LfsDeallocateLfcb(), LfsDeallocateRestartArea, LfsExceptionFilter(), LfsInitializeLogFile(), LfsInitializeLogFilePriv(), LfsLi0, LfsNormalizeBasicLogFile(), LfsReleaseLfcb, LfsReleaseLfsData, _LFS_WRITE_DATA::LfsStructureSize, LfsUpdateLfcbFromNoRestart(), LfsUpdateLfcbFromPgHeader(), LfsUpdateRestartAreaFromLfcb(), NTSTATUS(), NULL, PAGE_SIZE, PAGED_CODE, _LFCB::RestartArea, _LFCB::RestartDataSize, Status, TRUE, and _LFCB::UserWriteData. Referenced by LfsInitializeLogFile().
|
|
Definition at line 3065 of file lfs/registry.c. References CcUnpinData(), Dbg, DebugTrace, FALSE, LFS_SIGNATURE_UNINITIALIZED_ULONG, LfsFlushLogPage(), LfsPinOrMapData(), LfsWriteLfsRestart(), NT_SUCCESS, NULL, PAGED_CODE, and TRUE. Referenced by LfsInitializeLogFile(), and LfsRestartLogFile().
|
|
Definition at line 2246 of file lfs/registry.c. References Dbg, DebugTrace, ExRaiseStatus(), LFS_DEFAULT_LOG_PAGE_SIZE, LfsMaximumFileSize, MINIMUM_LFS_PAGES, PAGE_SIZE, PAGED_CODE, and USHORT. Referenced by LfsInitializeLogFile(), and LfsRestartLogFile().
|
|
Definition at line 366 of file lfs/registry.c. References CcSetAdditionalCacheAttributes(), _LFCB::ClientArray, _LCH::ClientArrayByteOffset, _LFS_RESTART_AREA::ClientFreeList, _LCH::ClientId, _LFS_CLIENT_ID::ClientIndex, _LFS_RESTART_AREA::ClientInUseList, _LFS_CLIENT_RECORD::ClientName, _LFS_CLIENT_RECORD::ClientNameLength, _LFS_CLIENT_RECORD::ClientRestartLsn, Dbg, DebugTrace, DebugUnwind, ExRaiseStatus(), _LFCB::FileObject, FlagOn, _LFCB::Flags, _LCH::LchLinks, _LFCB::LchLinks, _LCH::Lfcb, LFCB_LOG_FILE_CORRUPT, LFCB_PACK_LOG, _LFCB::LfcbLinks, _LFS_DATA::LfcbLinks, LFS_CLIENT_NAME_MAX, LFS_LOG_HANDLE, LFS_NO_CLIENT, LfsAcquireLfsData, LfsAddClientToList(), LfsAllocateLch, LfsData, LfsDeallocateLch, LfsDeallocateLfcb(), LfsExceptionFilter(), LfsOpenLogFile(), LfsReleaseLfcb, LfsReleaseLfsData, LfsRemoveClientFromList(), LfsRestartLogFile(), LfsZeroLsn, _LFS_CLIENT_RECORD::NextClient, NTSTATUS(), NULL, _LFCB::OldestLsn, _LFS_CLIENT_RECORD::OldestLsn, PAGED_CODE, PtrOffset, _LFCB::RecordHeaderLength, _LFCB::RestartArea, _LFS_CLIENT_RECORD::SeqNumber, _LFS_CLIENT_ID::SeqNumber, Status, _LFCB::Sync, _LCH::Sync, TRUE, _LFCB_SYNC::UserCount, and USHORT. Referenced by LfsOpenLogFile().
|
|
Definition at line 1141 of file lfs/registry.c. References Buffer, _LCH::ClientUndoCommitment, _LOG_FILE_INFORMATION::ClientUndoCommitment, _LOG_FILE_INFORMATION::CurrentAvailable, _LFS_RESTART_AREA::CurrentLsn, Dbg, DebugTrace, DebugUnwind, _LFCB::LastFlushedLsn, _LOG_FILE_INFORMATION::LastFlushedLsn, _LOG_FILE_INFORMATION::LastLsn, _LCH::Lfcb, LfsAcquireLch, LfsCurrentAvailSpace(), LfsReadLogFileInformation(), LfsReleaseLch, LfsValidateClientId, LfsValidateLch, NULL, _LFCB::OldestLsn, _LOG_FILE_INFORMATION::OldestLsn, PAGED_CODE, _LFCB::RestartArea, _LFCB::TotalAvailable, _LOG_FILE_INFORMATION::TotalAvailable, _LFCB::TotalUndoCommitment, _LOG_FILE_INFORMATION::TotalUndoCommitment, and try_return. Referenced by LfsReadLogFileInformation().
|
|
Definition at line 4383 of file lfs/registry.c. References Dbg, DebugTrace, LFS_NO_CLIENT, _LFS_CLIENT_RECORD::NextClient, PAGED_CODE, and _LFS_CLIENT_RECORD::PrevClient. Referenced by LfsCloseLogFile(), and LfsOpenLogFile().
|
|
|
|
Definition at line 1361 of file lfs/registry.c. References _LCH::ClientUndoCommitment, Dbg, DebugTrace, DebugUnwind, ExRaiseStatus(), FlagOn, _LFCB::Flags, _LCH::Lfcb, LFCB_PACK_LOG, LfsAcquireLch, LfsReleaseLch, LfsResetUndoTotal(), LfsValidateClientId, LfsValidateLch, NULL, PAGED_CODE, _LFCB::RecordHeaderLength, and _LFCB::TotalUndoCommitment. Referenced by LfsResetUndoTotal().
|
|
Definition at line 1534 of file lfs/registry.c. References Add2Ptr, ASSERT, CcUnpinData(), ClearFlag, _LFCB::ClientArray, _LFS_RESTART_AREA::ClientArrayOffset, _LFCB::ClientArrayOffset, _LFS_RESTART_AREA::ClientInUseList, _LFCB::CurrentOpenLogCount, Dbg, DebugTrace, DebugUnwind, ExRaiseStatus(), FALSE, _LFCB::FileObject, _LFS_RESTART_AREA::FileSize, FlagOn, _LFS_RESTART_AREA::Flags, _LFCB::Flags, _LFCB::InitialRestartArea, KeQuerySystemTime(), LFCB_READ_FIRST_RESTART, LFCB_READ_SECOND_RESTART, LFS_DEFAULT_LOG_PAGE_SIZE, LFS_NO_CLIENT, LFS_SIGNATURE_MODIFIED_ULONG, LfsAcquireLfcb, LfsAllocateLfcb(), LfsAllocateRestartArea, LfsDeallocateLfcb(), LfsDeallocateRestartArea, LfsFindCurrentAvail(), LfsFindLastLsn(), LfsFixedPageSize, LfsInitializeLogFilePriv(), LfsLi0, LfsNormalizeBasicLogFile(), LfsPackLog, LfsPinOrMapData(), LfsReadRestart(), LfsReleaseLfcb, LfsRestartLogFile(), _LFS_WRITE_DATA::LfsStructureSize, LfsUpdateLfcbFromNoRestart(), LfsUpdateLfcbFromPgHeader(), LfsUpdateLfcbFromRestart(), LfsUpdateRestartAreaFromLfcb(), _LFS_RESTART_AREA::LogClientArray, _LFCB::LogClients, _LFS_RESTART_PAGE_HEADER::LogPageSize, LSN, _LFS_RESTART_PAGE_HEADER::MajorVersion, _LFS_RESTART_PAGE_HEADER::MinorVersion, NT_SUCCESS, NULL, PAGE_SIZE, PAGED_CODE, RESTART_SINGLE_PAGE_IO, _LFCB::RestartArea, _LFS_RESTART_AREA::RestartAreaLength, _LFCB::RestartAreaSize, _LFCB::RestartDataSize, _LFS_RESTART_PAGE_HEADER::RestartOffset, _LFS_RESTART_AREA::RestartOpenLogCount, SetFlag, SHORT, _LFS_RESTART_PAGE_HEADER::SystemPageSize, TRUE, _LFCB::UserWriteData, and USHORT. Referenced by LfsOpenLogFile(), and LfsRestartLogFile().
|
|
Definition at line 2514 of file lfs/registry.c. References Count, Dbg, DebugTrace, FlagOn, LFCB_LOG_WRAPPED, LFCB_MULTIPLE_PAGE_IO, LFCB_NO_LAST_LSN, LFCB_NO_OLDEST_LSN, LFCB_PACK_LOG, LFS_RECORD_HEADER_SIZE, LFS_RESTART_PAGE_HEADER_SIZE, LfsAllocateLbcb(), LfsFileOffsetToLsn, LfsLsnToSeqNumber, LSN, PAGED_CODE, QuadAlign, SetFlag, UPDATE_SEQUENCE_NUMBER, and USHORT. Referenced by LfsInitializeLogFile(), and LfsRestartLogFile().
|
|
Definition at line 2390 of file lfs/registry.c. References Dbg, DebugTrace, LFCB_PACK_LOG, LFS_PACKED_RECORD_PAGE_HEADER_SIZE, LFS_RESTART_PAGE_HEADER_SIZE, LFS_UNPACKED_RECORD_PAGE_HEADER_SIZE, PAGED_CODE, SetFlag, TRUE, UpdateSequenceArraySize, and USHORT. Referenced by LfsInitializeLogFile(), and LfsRestartLogFile().
|
|
Definition at line 2697 of file lfs/registry.c. References Add2Ptr, Dbg, DebugTrace, FlagOn, LFCB_LOG_WRAPPED, LFCB_MULTIPLE_PAGE_IO, LFCB_NO_LAST_LSN, LFCB_NO_OLDEST_LSN, LFCB_PACK_LOG, LFCB_REUSE_TAIL, LFS_RECORD_HEADER_SIZE, LfsAllocateLbcb(), LfsFindCurrentAvail(), LfsFindOldestClientLsn(), LfsLsnFinalOffset(), LfsLsnToFileOffset, LfsLsnToSeqNumber, LfsNextLogPageOffset(), LfsTruncateOffsetToLogPage, LSN, PAGED_CODE, QuadAlign, RESTART_SINGLE_PAGE_IO, SetFlag, and UPDATE_SEQUENCE_NUMBER. Referenced by LfsRestartLogFile().
|
|
|
|
Definition at line 2964 of file lfs/registry.c. References Add2Ptr, Dbg, DebugTrace, FlagOn, LFCB_MULTIPLE_PAGE_IO, LFS_NO_CLIENT, PAGED_CODE, RESTART_SINGLE_PAGE_IO, SetFlag, and USHORT. Referenced by LfsInitializeLogFile(), and LfsRestartLogFile().
|
|
Definition at line 1273 of file lfs/registry.c. References Add2Ptr, _LFCB::CurrentOpenLogCount, FALSE, _LCH::Lfcb, LFS_NTC_LCH, LFS_NTC_LFCB, LFS_SIGNATURE_RESTART_PAGE_ULONG, LfsAcquireLch, LfsReleaseLch, LfsReleaseLfcb, _LFCB::NodeTypeCode, _LCH::NodeTypeCode, NULL, PAGED_CODE, _LFS_RESTART_PAGE_HEADER::RestartOffset, _LFCB::SystemPageSize, and TRUE.
|