Мое приложение использует Twain DLL для сканирования документов.Многие пользователи используют мое приложение без проблем.Но для немногих пользователей мое приложение зависает и получает ошибку, что мое приложение перестало работать.
Пользователи, сообщившие об этой проблеме, используют Windows Vista или Windows 7. Дамп памяти показывает System.Runtime.InteropServices.COMException
.Пожалуйста, смотрите ниже трассировку стека, взятую из дампа памяти.
FAULTING_IP:
ntdll!RtlReportCriticalFailure+5b
77a6015d eb1c jmp ntdll!RtlReportCriticalFailure+0x6f (77a6017b)
EXCEPTION_RECORD: ffffffff -- (.exr 0xffffffffffffffff)
ExceptionAddress: 00000000
ExceptionCode: 80000003 (Break instruction exception)
ExceptionFlags: 00000000
NumberParameters: 0
FAULTING_THREAD: 000016e0
PROCESS_NAME: NetX360.exe
ERROR_CODE: (NTSTATUS) 0x80000003 - {EXCEPTION} Breakpoint A breakpoint has been reached.
EXCEPTION_CODE: (HRESULT) 0x80000003 (2147483651) - One or more arguments are invalid
NTGLOBALFLAG: 0
APPLICATION_VERIFIER_FLAGS: 0
MANAGED_STACK: !dumpstack -EE
OS Thread Id: 0x16e0 (0)
Current frame:
ChildEBP RetAddr Caller,Callee
EXCEPTION_OBJECT: !pe 28dba80
Exception object: 028dba80
Exception type: System.Runtime.InteropServices.COMException
Message: Unknown error.
InnerException: <none>
StackTrace (generated):
SP IP Function
StackTraceString: <none>
HResult: 80004005
MANAGED_OBJECT: !dumpobj 28dbac8
Name: System.String
MethodTable: 6a110a00
EEClass: 69ecd64c
Size: 46(0x2e) bytes
(C:\Windows\assembly\GAC_32\mscorlib\2.0.0.0__b77a5c561934e089\mscorlib.dll)
String: Unknown error.
Fields:
MT Field Offset Type VT Attr Value Name
6a112c4c 4000096 4 System.Int32 1 instance 15 m_arrayLength
6a112c4c 4000097 8 System.Int32 1 instance 14 m_stringLength
6a1116e0 4000098 c System.Char 1 instance 55 m_firstChar
6a110a00 4000099 10 System.String 0 shared static Empty
>> Domain:Value 00082978:01db1198 <<
6a111630 400009a 14 System.Char[] 0 shared static WhitespaceChars
>> Domain:Value 00082978:01db1740 <<
EXCEPTION_MESSAGE: Unknown error.
MANAGED_OBJECT_NAME: System.Runtime.InteropServices.COMException
LAST_CONTROL_TRANSFER: from 77a60d68 to 77a6015d
BUGCHECK_STR: APPLICATION_FAULT_ACTIONABLE_HEAP_CORRUPTION_heap_failure_invalid_argument_WRONG_SYMBOLS
PRIMARY_PROBLEM_CLASS: ACTIONABLE_HEAP_CORRUPTION_heap_failure_invalid_argument
DEFAULT_BUCKET_ID: ACTIONABLE_HEAP_CORRUPTION_heap_failure_invalid_argument
STACK_TEXT:
77a6015d ntdll!RtlReportCriticalFailure+0x5b
77a60d68 ntdll!RtlpReportHeapFailure+0x21
77a60e56 ntdll!RtlpLogHeapFailure+0xa1
77a2b0c8 ntdll!RtlSizeHeap+0x69
778212e0 ole32!CRetailMalloc_GetSize+0x21
767f43d9 oleaut32!APP_DATA::FreeCachedMem+0x30
767f3e6c oleaut32!SysFreeString+0x6b
118b1647 VM31bTXP+0x1647
779ee1c4 ntdll!LdrpCallInitRoutine+0x14
779e8dea ntdll!LdrpUnloadDll+0x3d8
779ee8e2 ntdll!LdrUnloadDll+0x46
76aa0979 kernel32!FreeLibrary+0x15
597d6512 twain!CDataSrc::unload+0x22
597d66b9 twain!CDataSrc::SendMessageA+0x81
597d6c1e twain!CDataSrc::identityMsg+0x18
597d6d0d twain!CDataSrc::MessageNoAppCheck+0x47
597d6e14 twain!CDataSrc::IDataSrc+0xd0
597d58f6 twain!CDsm::registerDS+0x1b7
597d5ca3 twain!CDsm::registerDirDSs+0x163
597d5c87 twain!CDsm::registerDirDSs+0x147
597d5dc7 twain!CDsm::findAndRegisterDSs+0x85
597d5ed9 twain!CDsm::findClosestDefaultDS+0xcc
597d634d twain!CDsm::identityMsg+0x17e
597d6404 twain!CDsm::Message+0x91
597d8ec6 twain!DSM_Entry+0x102
0540605c unknown+0x0
119792d3 unknown+0x0
11979255 unknown+0x0
68991eab System_Windows_Forms_ni+0xa51eab
68991eab System_Windows_Forms_ni+0xa51eab
68120317 System_Windows_Forms_ni+0x1e0317
68136d71 System_Windows_Forms_ni+0x1f6d71
68136d1a System_Windows_Forms_ni+0x1f6d1a
68136d1a System_Windows_Forms_ni+0x1f6d1a
68136b74 System_Windows_Forms_ni+0x1f6b74
68140207 System_Windows_Forms_ni+0x200207
Пожалуйста, сообщите, когда происходит такое исключение.