From ad5916d19fe85c89db7675cac551a1e7634d5bdc Mon Sep 17 00:00:00 2001 From: Jeffrey Altman Date: Mon, 30 Apr 2012 06:22:41 -0400 Subject: [PATCH] Windows: More useful AFSDumpFile exception info Modify AFSExceptionFilter to accept the __FUNCTION__ name where the exception occurred. Generate the trace dump file after the exception has been handled so that it is possible to see where it happened in the trace output. Change-Id: Icddafc1066dd85b63d8d97c40c0f76c54d181ebe Reviewed-on: http://gerrit.openafs.org/7308 Tested-by: BuildBot Reviewed-by: Jeffrey Altman Tested-by: Jeffrey Altman --- .../afsrdr/common/AFSRedirCommonDefines.h | 3 +-- src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSClose.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSEa.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp | 9 ++++--- src/WINNT/afsrdr/kernel/fs/AFSInit.cpp | 4 +++- .../kernel/fs/AFSInternalDevControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp | 5 +++- src/WINNT/afsrdr/kernel/fs/AFSRead.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp | 4 +++- .../afsrdr/kernel/fs/AFSSystemControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp | 4 +++- .../afsrdr/kernel/fs/Include/AFSCommon.h | 3 ++- src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSClose.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSDevControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSEa.cpp | 8 +++++-- .../afsrdr/kernel/lib/AFSExtentsSupport.cpp | 12 +++++++--- src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp | 14 +++++++---- src/WINNT/afsrdr/kernel/lib/AFSInit.cpp | 4 +++- .../kernel/lib/AFSInternalDevControl.cpp | 4 +++- .../afsrdr/kernel/lib/AFSLockControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSQuota.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/lib/AFSRead.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSSecurity.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/lib/AFSShutdown.cpp | 4 +++- .../afsrdr/kernel/lib/AFSSystemControl.cpp | 4 +++- src/WINNT/afsrdr/kernel/lib/AFSVolumeInfo.cpp | 8 +++++-- src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp | 24 ++++++++++++++----- src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp | 2 +- .../afsrdr/kernel/lib/Include/AFSCommon.h | 3 ++- 45 files changed, 194 insertions(+), 69 deletions(-) diff --git a/src/WINNT/afsrdr/common/AFSRedirCommonDefines.h b/src/WINNT/afsrdr/common/AFSRedirCommonDefines.h index 26035a598..4772fad57 100644 --- a/src/WINNT/afsrdr/common/AFSRedirCommonDefines.h +++ b/src/WINNT/afsrdr/common/AFSRedirCommonDefines.h @@ -202,7 +202,6 @@ static inline void AFS_ASSERT() { //#define AFS_VALIDATE_EXTENTS 0 static inline void AFSBreakPoint() { - AFSDumpTraceFilesFnc(); #if !defined(KD_DEBUGGER_ENABLED) #define KD_DEBUGGER_ENABLED DBG #endif // KD_DEBUGGER_ENABLED @@ -222,7 +221,7 @@ static inline void AFSBreakPoint() { #else static inline void AFSBreakPoint() { - AFSDumpTraceFilesFnc(); + NOTHING; } #define AFSPrint diff --git a/src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp b/src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp index 0402dacd4..96e7502bc 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSCleanup.cpp @@ -102,12 +102,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSCleanup\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSClose.cpp b/src/WINNT/afsrdr/kernel/fs/AFSClose.cpp index 93ae387ea..64e8168df 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSClose.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSClose.cpp @@ -76,12 +76,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSClose\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp b/src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp index 0baab2223..b049a00b9 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSCommSupport.cpp @@ -356,9 +356,11 @@ try_exit: FALSE); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation())) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation())) { + AFSDumpTraceFilesFnc(); + if( bReleasePool) { @@ -783,10 +785,12 @@ AFSProcessControlRequest( IN PIRP Irp) //try_exit: } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation())) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation())) { ntStatus = STATUS_UNSUCCESSFUL; + + AFSDumpTraceFilesFnc(); } if( bCompleteRequest) diff --git a/src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp index 547c58be2..fde3259ec 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSCreate.cpp @@ -77,7 +77,7 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, @@ -85,6 +85,8 @@ try_exit: "EXCEPTION - AFSCreate\n"); ntStatus = STATUS_ACCESS_DENIED; + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp index 31c29572f..3c764d926 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSDevControl.cpp @@ -78,12 +78,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSDevControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp index c4e2ff6dc..0f9f9529a 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSDirControl.cpp @@ -107,12 +107,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSDirControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSEa.cpp b/src/WINNT/afsrdr/kernel/fs/AFSEa.cpp index adf90666c..4c5a37705 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSEa.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSEa.cpp @@ -103,12 +103,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryEA\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -179,12 +181,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetEA\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp index d2a486800..f00eec057 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSFSControl.cpp @@ -96,12 +96,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSFSControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp index cc3c950fd..9d3d921f3 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSFileInfo.cpp @@ -124,7 +124,7 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, @@ -132,6 +132,8 @@ try_exit: "EXCEPTION - AFSQueryFileInfo\n"); ntStatus = STATUS_UNSUCCESSFUL; + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -225,7 +227,7 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, @@ -233,6 +235,8 @@ try_exit: "EXCEPTION - AFSSetFileInfo\n"); ntStatus = STATUS_UNSUCCESSFUL; + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp index b92444f38..e5260775e 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSGeneric.cpp @@ -51,7 +51,8 @@ // ULONG -AFSExceptionFilter( IN ULONG Code, +AFSExceptionFilter( IN CHAR *FunctionString, + IN ULONG Code, IN PEXCEPTION_POINTERS ExceptPtrs) { @@ -67,11 +68,13 @@ AFSExceptionFilter( IN ULONG Code, AFSDbgLogMsg( 0, 0, - "AFSExceptionFilter (Framework) - EXR %p CXR %p Code %08lX Address %p\n", + "AFSExceptionFilter (Framework) - EXR %p CXR %p Function %s Code %08lX Address %p Routine %p\n", ExceptRec, Context, + FunctionString, ExceptRec->ExceptionCode, - ExceptRec->ExceptionAddress); + ExceptRec->ExceptionAddress, + (void *)AFSExceptionFilter); DbgPrint("**** Exception Caught in AFS Redirector ****\n"); diff --git a/src/WINNT/afsrdr/kernel/fs/AFSInit.cpp b/src/WINNT/afsrdr/kernel/fs/AFSInit.cpp index 5ad3ba098..83e22f79f 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSInit.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSInit.cpp @@ -520,12 +520,14 @@ try_exit: ExDeleteResourceLite( &AFSDbgLogLock); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSRedirFs DriverEntry\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSInternalDevControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSInternalDevControl.cpp index 1853912e5..d966f2560 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSInternalDevControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSInternalDevControl.cpp @@ -55,12 +55,14 @@ AFSInternalDevControl( IN PDEVICE_OBJECT DeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSInternalDevControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp index c4a618428..3de4fae28 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSLockControl.cpp @@ -93,13 +93,15 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( (ntStatus = GetExceptionCode()), GetExceptionInformation())) + __except( AFSExceptionFilter( __FUNCTION__, (ntStatus = GetExceptionCode()), GetExceptionInformation())) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSLockControl\n"); + AFSDumpTraceFilesFnc(); + AFSCompleteRequest( Irp, ntStatus); } diff --git a/src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp b/src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp index 423f200b6..7d139c50f 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSQuota.cpp @@ -60,12 +60,14 @@ AFSQueryQuota( IN PDEVICE_OBJECT DeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryQuota\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -92,12 +94,14 @@ AFSSetQuota( IN PDEVICE_OBJECT DeviceObject, AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetQuota\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp b/src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp index 31d1e3442..45ad910bd 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSRDRSupport.cpp @@ -532,8 +532,11 @@ AFSInitializeRedirector( IN AFSRedirectorInitInfo *RedirInitInfo) pDevExt->Specific.RDR.CacheBaseAddress = MmGetSystemAddressForMdlSafe( pDevExt->Specific.RDR.CacheMdl, NormalPagePriority); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { + + AFSDumpTraceFilesFnc(); + IoFreeMdl( pDevExt->Specific.RDR.CacheMdl); pDevExt->Specific.RDR.CacheMdl = NULL; } diff --git a/src/WINNT/afsrdr/kernel/fs/AFSRead.cpp b/src/WINNT/afsrdr/kernel/fs/AFSRead.cpp index 877813eb1..6e987b486 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSRead.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSRead.cpp @@ -101,9 +101,11 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { + AFSDumpTraceFilesFnc(); + ntStatus = STATUS_INSUFFICIENT_RESOURCES; } diff --git a/src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp b/src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp index b4a33e310..d531aa929 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSSecurity.cpp @@ -120,12 +120,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetSecurity\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -213,12 +215,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQuerySecurity\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp b/src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp index 4fb66bf78..5e6fd9e77 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSShutdown.cpp @@ -78,12 +78,14 @@ AFSShutdown( IN PDEVICE_OBJECT DeviceObject, AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSShutdown\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSSystemControl.cpp b/src/WINNT/afsrdr/kernel/fs/AFSSystemControl.cpp index b80c2adc1..63817f3e9 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSSystemControl.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSSystemControl.cpp @@ -60,12 +60,14 @@ AFSSystemControl( IN PDEVICE_OBJECT DeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSystemControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp b/src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp index 9abf890ce..485713d3c 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSVolumeInfo.cpp @@ -97,12 +97,14 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryVolumeInfo\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -129,12 +131,14 @@ AFSSetVolumeInfo( IN PDEVICE_OBJECT DeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetVolumeInfo\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp index d2cfeadb9..342058765 100644 --- a/src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/fs/AFSWrite.cpp @@ -105,10 +105,12 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { ntStatus = STATUS_INSUFFICIENT_RESOURCES; + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h b/src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h index 75300b54b..5ae8604f8 100644 --- a/src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h +++ b/src/WINNT/afsrdr/kernel/fs/Include/AFSCommon.h @@ -400,7 +400,8 @@ AFSSetQuota( IN PDEVICE_OBJECT DeviceObject, // ULONG -AFSExceptionFilter( IN ULONG Code, +AFSExceptionFilter( IN CHAR *FunctionString, + IN ULONG Code, IN PEXCEPTION_POINTERS ExceptPtrs); BOOLEAN diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp index 612e49946..342c338ca 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCleanup.cpp @@ -1351,12 +1351,14 @@ try_exit: AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSCleanup\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSClose.cpp b/src/WINNT/afsrdr/kernel/lib/AFSClose.cpp index 469ba5154..62bcb2125 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSClose.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSClose.cpp @@ -686,12 +686,14 @@ try_exit: AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSClose\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp index 388495c9c..3bb9e5f2f 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSCreate.cpp @@ -99,7 +99,7 @@ try_exit: NOTHING; } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, @@ -107,6 +107,8 @@ try_exit: "EXCEPTION - AFSCreate\n"); ntStatus = STATUS_ACCESS_DENIED; + + AFSDumpTraceFilesFnc(); } // diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDevControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDevControl.cpp index 3464552c2..627195eb4 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSDevControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSDevControl.cpp @@ -427,10 +427,12 @@ AFSDevControl( IN PDEVICE_OBJECT LibDeviceObject, //try_exit: } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation())) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation())) { ntStatus = STATUS_UNSUCCESSFUL; + + AFSDumpTraceFilesFnc(); } Irp->IoStatus.Status = ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp index cb8995840..e7346f294 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSDirControl.cpp @@ -89,12 +89,14 @@ AFSDirControl( IN PDEVICE_OBJECT LibDeviceObject, break; } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSDirControl\n"); + + AFSDumpTraceFilesFnc(); } if( ntStatus != STATUS_PENDING) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSEa.cpp b/src/WINNT/afsrdr/kernel/lib/AFSEa.cpp index 94fa398c2..49ff0cc3e 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSEa.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSEa.cpp @@ -71,12 +71,14 @@ AFSQueryEA( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryEA\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -115,12 +117,14 @@ AFSSetEA( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetEA\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp b/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp index b4823780f..05610d39f 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSExtentsSupport.cpp @@ -668,12 +668,14 @@ BOOLEAN AFSDoExtentsMapRegion(IN AFSFcb *Fcb, entry = newEntry; } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSDoExtentsMapRegion\n"); + + AFSDumpTraceFilesFnc(); } try_exit: @@ -3604,12 +3606,14 @@ AFSMarkDirty( IN AFSFcb *Fcb, ulCount++; } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSMarkDirty\n"); + + AFSDumpTraceFilesFnc(); } AFSReleaseResource( &pNPFcb->Specific.File.DirtyExtentsListLock); @@ -4382,12 +4386,14 @@ AFSSetupMD5Hash( IN AFSFcb *Fcb, PsGetCurrentThread()); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetupMD5Hash\n"); + + AFSDumpTraceFilesFnc(); } AFSReleaseResource( &Fcb->NPFcb->Specific.File.ExtentsResource ); diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp index b5768a9bd..6715c9558 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFSControl.cpp @@ -77,12 +77,14 @@ AFSFSControl( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSFSControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp index 6311a9dd1..4a53c502a 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSFileInfo.cpp @@ -441,13 +441,15 @@ try_exit: } } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryFileInfo\n"); + AFSDumpTraceFilesFnc(); + ntStatus = STATUS_UNSUCCESSFUL; if( bReleaseMain) @@ -739,13 +741,15 @@ try_exit: } } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetFileInfo\n"); + AFSDumpTraceFilesFnc(); + ntStatus = STATUS_UNSUCCESSFUL; if( bReleaseMain) diff --git a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp index 0dca9fdd6..e25dc985e 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSGeneric.cpp @@ -51,7 +51,8 @@ // ULONG -AFSExceptionFilter( IN ULONG Code, +AFSExceptionFilter( IN CHAR *FunctionString, + IN ULONG Code, IN PEXCEPTION_POINTERS ExceptPtrs) { @@ -67,9 +68,10 @@ AFSExceptionFilter( IN ULONG Code, AFSDbgLogMsg( 0, 0, - "AFSExceptionFilter (Library) - EXR %p CXR %p Code %08lX Address %p Routine %p\n", + "AFSExceptionFilter (Library) - EXR %p CXR %p Function %s Code %08lX Address %p Routine %p\n", ExceptRec, Context, + FunctionString, ExceptRec->ExceptionCode, ExceptRec->ExceptionAddress, (void *)AFSExceptionFilter); @@ -403,9 +405,11 @@ AFSLockSystemBuffer( IN PIRP Irp, pAddress = MmGetSystemAddressForMdlSafe( Irp->MdlAddress, NormalPagePriority ); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { + AFSDumpTraceFilesFnc(); + IoFreeMdl( Irp->MdlAddress ); Irp->MdlAddress = NULL; pAddress = NULL; @@ -455,9 +459,11 @@ AFSLockUserBuffer( IN void *UserBuffer, pAddress = MmGetSystemAddressForMdlSafe( pMdl, NormalPagePriority); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { + AFSDumpTraceFilesFnc(); + IoFreeMdl( pMdl); pMdl = NULL; pAddress = NULL; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp b/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp index 98a59411f..d8f3aff8f 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSInit.cpp @@ -286,10 +286,12 @@ try_exit: } } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSPrint( "EXCEPTION - AFS DriverEntry\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSInternalDevControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSInternalDevControl.cpp index 64e5e9c01..363216de7 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSInternalDevControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSInternalDevControl.cpp @@ -55,12 +55,14 @@ AFSInternalDevControl( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSInternalDevControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSLockControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSLockControl.cpp index e54cb0014..15459670b 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSLockControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSLockControl.cpp @@ -299,13 +299,15 @@ try_exit: ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation())) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation())) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSLockControl\n"); + AFSDumpTraceFilesFnc(); + // // Again, there is little point in failing this request but pass back some type of failure status // diff --git a/src/WINNT/afsrdr/kernel/lib/AFSQuota.cpp b/src/WINNT/afsrdr/kernel/lib/AFSQuota.cpp index ab8a0ddb4..7816de6a7 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSQuota.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSQuota.cpp @@ -60,12 +60,14 @@ AFSQueryQuota( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryQuota\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -92,12 +94,14 @@ AFSSetQuota( IN PDEVICE_OBJECT DeviceObject, AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetQuota\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSRead.cpp b/src/WINNT/afsrdr/kernel/lib/AFSRead.cpp index 660e90fcc..e0ac614d8 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSRead.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSRead.cpp @@ -785,10 +785,12 @@ AFSRead( IN PDEVICE_OBJECT LibDeviceObject, ntStatus = AFSCommonRead( AFSRDRDeviceObject, Irp, NULL); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { ntStatus = STATUS_INSUFFICIENT_RESOURCES; + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSSecurity.cpp b/src/WINNT/afsrdr/kernel/lib/AFSSecurity.cpp index 5b178b643..c15d32b8e 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSSecurity.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSSecurity.cpp @@ -59,12 +59,14 @@ AFSSetSecurity( IN PDEVICE_OBJECT LibDeviceObject, AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetSecurity\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -144,12 +146,14 @@ try_exit: IoFreeMdl( pUserBufferMdl); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQuerySecurity\n"); + + AFSDumpTraceFilesFnc(); } AFSCompleteRequest( Irp, diff --git a/src/WINNT/afsrdr/kernel/lib/AFSShutdown.cpp b/src/WINNT/afsrdr/kernel/lib/AFSShutdown.cpp index 9bf6f67f5..230f8afa5 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSShutdown.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSShutdown.cpp @@ -62,12 +62,14 @@ AFSShutdown( IN PDEVICE_OBJECT LibDeviceObject, AFSCompleteRequest( Irp, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSShutdown\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSSystemControl.cpp b/src/WINNT/afsrdr/kernel/lib/AFSSystemControl.cpp index 109e065a4..6afcd9508 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSSystemControl.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSSystemControl.cpp @@ -60,12 +60,14 @@ AFSSystemControl( IN PDEVICE_OBJECT LibDeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSystemControl\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSVolumeInfo.cpp b/src/WINNT/afsrdr/kernel/lib/AFSVolumeInfo.cpp index 33e174bfe..6d6343fae 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSVolumeInfo.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSVolumeInfo.cpp @@ -203,12 +203,14 @@ try_exit: ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueryVolumeInfo\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -235,12 +237,14 @@ AFSSetVolumeInfo( IN PDEVICE_OBJECT DeviceObject, ntStatus); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSSetVolumeInfo\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp index ac8381846..64b9adaa9 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWorker.cpp @@ -2249,12 +2249,14 @@ try_exit: "AFSQueueFlushExtents Failed to queue request Status %08lX\n", ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueFlushExtents\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -2333,12 +2335,14 @@ try_exit: "AFSQueueAsyncRead Failed to queue request Status %08lX\n", ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueAsyncRead\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -2417,12 +2421,14 @@ try_exit: "AFSQueueAsyncWrite Failed to queue request Status %08lX\n", ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueAsyncWrite\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -2487,12 +2493,14 @@ try_exit: ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueGlobalRootEnumeration\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -2591,12 +2599,14 @@ try_exit: } } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueStartIos\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; @@ -2665,12 +2675,14 @@ try_exit: ntStatus); } } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { AFSDbgLogMsg( 0, 0, "EXCEPTION - AFSQueueInvalidateObject\n"); + + AFSDumpTraceFilesFnc(); } return ntStatus; diff --git a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp index e4db03a86..177c6cf1f 100644 --- a/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp +++ b/src/WINNT/afsrdr/kernel/lib/AFSWrite.cpp @@ -81,7 +81,7 @@ AFSWrite( IN PDEVICE_OBJECT LibDeviceObject, ntStatus = AFSCommonWrite( AFSRDRDeviceObject, Irp, NULL); } - __except( AFSExceptionFilter( GetExceptionCode(), GetExceptionInformation()) ) + __except( AFSExceptionFilter( __FUNCTION__, GetExceptionCode(), GetExceptionInformation()) ) { ntStatus = STATUS_INSUFFICIENT_RESOURCES; diff --git a/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h b/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h index f98494e2f..39cb790c3 100644 --- a/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h +++ b/src/WINNT/afsrdr/kernel/lib/Include/AFSCommon.h @@ -1043,7 +1043,8 @@ AFSSetQuota( IN PDEVICE_OBJECT DeviceObject, // ULONG -AFSExceptionFilter( IN ULONG Code, +AFSExceptionFilter( IN CHAR *FunctionString, + IN ULONG Code, IN PEXCEPTION_POINTERS ExceptPtrs); BOOLEAN -- 2.39.5