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 }

Generated on Sat May 15 19:40:38 2004 for test by doxygen 1.3.7