test: lfsdata.c File Reference

Main Page | Class Hierarchy | Class List | File List | Class Members | File Members

# lfsdata.c File Reference

`#include "lfsprocs.h"`

Go to the source code of this file.

## Defines

#define | Dbg (DEBUG_TRACE_CATCH_EXCEPTIONS)

## Functions

LONG | LfsExceptionFilter (IN PEXCEPTION_POINTERS ExceptionPointer)

## Variables

LFS_DATA | LfsData
LARGE_INTEGER | LfsLi0 = {0x00000000, 0x00000000}
LARGE_INTEGER | LfsLi1 = {0x00000001, 0x00000000}
LSN | LfsZeroLsn = {0x00000000, 0x00000000}

## Define Documentation

#define Dbg (DEBUG_TRACE_CATCH_EXCEPTIONS)

| Definition at line 27 of file lfsdata.c.

## Function Documentation

LONG LfsExceptionFilter | ( | IN PEXCEPTION_POINTERS | ExceptionPointer | ) |

Definition at line 58 of file lfsdata.c.

References ASSERT, EXCEPTION_CONTINUE_SEARCH, EXCEPTION_EXECUTE_HANDLER, FsRtlIsNtstatusExpected(), and NTSTATUS().

Referenced by LfsCloseLogFile(), LfsDeleteLogHandle(), LfsFlushToLsn(), LfsForceWrite(), LfsInitializeLogFile(), LfsOpenLogFile(), LfsPinOrMapData(), LfsReadLogRecord(), LfsReadNextLogRecord(), LfsReadRestartArea(), LfsSetBaseLsn(), LfsWrite(), and LfsWriteRestartArea().

    00064                    :
    00065
    00066     This routine is used to decide if we should or should not handle
    00067     an exception status that is being raised.  It indicates that we should handle
    00068     the exception or bug check the system.
    00069
    00070 Arguments:
    00071
    00072     ExceptionCode - Supplies the exception code to being checked.
    00073
    00074 Return Value:
    00075
    00076     ULONG - returns EXCEPTION_EXECUTE_HANDLER or bugchecks
    00077
    00078 --*/
    00079
    00080 {
    00081     NTSTATUS ExceptionCode = ExceptionPointer->ExceptionRecord->ExceptionCode;
    00082
    00083 #ifdef NTFS_RESTART
    00084     ASSERT( (ExceptionCode != STATUS_DISK_CORRUPT_ERROR) &&
    00085             (ExceptionCode != STATUS_FILE_CORRUPT_ERROR) );
    00086 #endif
    00087
    00088     //if (ExceptionCode != STATUS_LOG_FILE_FULL) {
    00089     //
    00090     //    DbgPrint("Status not LOGFILE FULL, ExceptionPointers = %08lx\n", ExceptionPointer);
    00091     //    DbgBreakPoint();
    00092     //}
    00093
    00094     if (!FsRtlIsNtstatusExpected( ExceptionCode )) {
    00095
    00096         return EXCEPTION_CONTINUE_SEARCH;
    00097
    00098     } else {
    00099
    00100         return EXCEPTION_EXECUTE_HANDLER;
    00101     }
    00102 }
    }

## Variable Documentation

LFS_DATA LfsData

| Definition at line 33 of file lfsdata.c. Referenced by LfsAllocateSpanningBuffer(), LfsFreeSpanningBuffer(), LfsInitializeLogFile(), LfsInitializeLogFileService(), and LfsOpenLogFile().

LARGE_INTEGER LfsLi0 = {0x00000000, 0x00000000}

| Definition at line 39 of file lfsdata.c. Referenced by LfsFindLastLsn(), LfsFlushLfcb(), LfsInitializeLogFile(), and LfsRestartLogFile().

LARGE_INTEGER LfsLi1 = {0x00000001, 0x00000000}

| Definition at line 40 of file lfsdata.c. Referenced by LfsAllocateLfcb().

LSN LfsZeroLsn = {0x00000000, 0x00000000}

| Definition at line 47 of file lfsdata.c. Referenced by LfsCloseLogFile(), LfsOpenLogFile(), LfsQueryLastLsn(), LfsReadRestartArea(), and LfsWriteRestartArea().