指定了无效句柄

时间:2015-11-03 13:44:05

标签: c# .net debugging tapi

之前我曾问过相关问题,但我现在有更多信息和新问题。

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

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

  

svchost.exe中0x00007FFF4F8D311A(ntdll.dll)的第一次机会异常:> 0xC0000008:指定了无效句柄。

     

如果存在此异常的处理程序,则可以安全地继续该程序。

如果我点击“继续”,我会收到下一个例外:

  

svchost.exe中0x00007FFF4F8D311A(ntdll.dll)的未处理异常:> 0xC0000008:指定了无效句柄。

     

如果存在此异常的处理程序,则可以安全地继续该程序。

现在,在调试模式之外,我认为这个例外没有被忽略,导致问题的原因是什么,因为当我继续调试模式时,没有任何结束,一切都正确卸载

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

1 个答案:

答案 0 :(得分:0)

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

您可以将TAPI流程隔离到自己的服务流程中。所以你的电脑不会变得不稳定。您找到了说明here