test: lfsdata.c Source File

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

# lfsdata.c

Go to the documentation of this file.

    00001 /*++
    00002
    00003 Copyright (c) 1990  Microsoft Corporation
    00004
    00005 Module Name:
    00006
    00007     LfsData.c
    00008
    00009 Abstract:
    00010
    00011     This module declares the global data used by the Logging File Service.
    00012
    00013 Author:
    00014
    00015     Brian Andrew    [BrianAn]   20-June-1991
    00016
    00017 Revision History:
    00018
    00019 --*/
    00020
    00021 #include "lfsprocs.h"
    00022
    00023 //
    00024 //  The debug trace level
    00025 //
    00026
    00027 #define Dbg                              (DEBUG_TRACE_CATCH_EXCEPTIONS)
    00028
    00029 //
    00030 //  The global Lfs data record
    00031 //
    00032
    00033 LFS_DATA LfsData;
    00034
    00035 //
    00036 //  Various large integer constants.
    00037 //
    00038
    00039 LARGE_INTEGER LfsLi0 = {0x00000000, 0x00000000};
    00040 LARGE_INTEGER LfsLi1 = {0x00000001, 0x00000000};
    00041
    00042 //
    00043 //  The following Lsn will never occur in a file, it is used to indicate
    00044 //  a non-lsn.
    00045 //
    00046
    00047 LSN LfsZeroLsn = {0x00000000, 0x00000000};
    00048
    00049 #ifdef LFSDBG
    00050
    00051 LONG LfsDebugTraceLevel = 0x0000000F;
    00052 LONG LfsDebugTraceIndent = 0;
    00053
    00054 #endif // LFSDBG
    00055
    00056
    00057 LONG
    00058 LfsExceptionFilter (
    00059     IN PEXCEPTION_POINTERS ExceptionPointer
    00060     )
    00061
    00062 /*++
    00063
    00064 Routine Description:
    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 }