2015-11-03 93 views
0

我已经问过一个相关的问题,但我现在有更多的信息和一个新的问题。指定的句柄无效

我试图在我自己的Win8 64位程序中使用TAPI3,但是无论何时tapi.shutdown()被调用或者该项目处置完毕,同一svchost.exe中运行的所有其他服务也结束。

我将一个调试器附加到tapisrv.dll文件,以查看发生了什么。当这个函数被调用时,我得到以下异常:

在0x00007FFF4F8D311A(NTDLL.DLL)Svchost.exe中第一次机会异常:> 0xC0000008:指定了无效的句柄。

如果有这种异常的处理程序,程序可能会安全地继续。

如果我点击继续,我得到了一个异常:

未处理的异常在0x00007FFF4F8D311A(NTDLL.DLL)Svchost.exe中:> 0xC0000008:指定了无效的句柄。

如果有这种异常的处理程序,程序可能会安全地继续。现在

,调试模式之外,我认为,这个异常不会被忽略,这就是造成问题的,因为当我在调试模式没有持续到结束,一切正常卸载。

所以这里是我的问题:这个异常发生在我的代码之外。有什么方法可以在我的代码中捕获并处理这个问题吗?

回答

0

您使用的TSP只是越野车和崩溃。你永远无法处理代码中的这种错误或崩溃。您的流程中只有一个存根DLL,并且与服务进行通信。该服务加载TSP(简单DLL)并执行它们。所以所有的TSP都在自己的服务中运行。如果发生崩溃(导致崩溃),则同一主机中的所有其他TSP和所有其他服务都会受到影响。

您可以将TAPI流程分离为其自己的服务流程。所以你的电脑不稳定。你找到一个描述here