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 26035a5981..4772fad573 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 0402dacd44..96e7502bca 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 93ae387ea1..64e8168df3 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 0baab22237..b049a00b9b 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 547c58be28..fde3259ec4 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 31c29572fa..3c764d9260 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 c4e2ff6dc3..0f9f9529a2 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 adf90666ca..4c5a377053 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 d2a486800e..f00eec0575 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 cc3c950fda..9d3d921f36 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 b92444f389..e5260775e5 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 5ad3ba0985..83e22f79f7 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 1853912e5b..d966f25606 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 c4a6184289..3de4fae28e 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 423f200b60..7d139c50fe 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 31d1e3442f..45ad910bd0 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 877813eb10..6e987b4868 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 b4a33e3103..d531aa9297 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 4fb66bf781..5e6fd9e77a 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 b80c2adc12..63817f3e94 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 9abf890ce2..485713d3cb 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 d2cfeadb92..342058765c 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 75300b54b6..5ae8604f8b 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 612e499464..342c338ca7 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 469ba51549..62bcb21258 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 388495c9c0..3bb9e5f2fc 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 3464552c20..627195eb44 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 cb8995840a..e7346f2940 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 94fa398c20..49ff0cc3e1 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 b4823780f4..05610d39fb 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 b5768a9bd3..6715c95589 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 6311a9dd1d..4a53c502a7 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 0dca9fdd60..e25dc985e9 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 98a59411f5..d8f3aff8fc 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 64e5e9c013..363216de7d 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 e54cb0014d..15459670b4 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 ab8a0ddb47..7816de6a7a 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 660e90fccb..e0ac614d8e 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 5b178b643b..c15d32b8e8 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 9bf6f67f5c..230f8afa50 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 109e065a4e..6afcd95088 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 33e174bfee..6d6343faea 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 ac83818463..64b9adaa93 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 e4db03a869..177c6cf1f0 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 f98494e2f7..39cb790c37 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