驱动程序删除后的BSoD

时间:2016-05-27 04:55:56

标签: c++ windows driver uninstall

我使用WDK8.0的样本编写了我的第一个音频驱动程序 - MSVAD。 我的安装和工作没有任何问题,但是当我尝试通过设备管理器卸载驱动程序时出现问题:

  • 如果驱动程序未使用任何应用程序,则我会毫无问题地将其删除。
  • 但是,如果我将驱动程序连接到应用程序,那么OS(Win10 x64)需要重新加载PC,然后使用消息 - SYSTEM_THREAD_EXCEPTION_NOT_HANDLED进入BSoD。重新上电后,尽管有这样的信息,驱动程序仍被移除。

任何想法。

内存转储在enter link description here

1 个答案:

答案 0 :(得分:1)

我发现了WinDbg的错误。 MSVAD在PnpHandler()

中的代码失败
        ext->m_pCommon->UninstantiateDevices();
        ext->m_pCommon->Release();
        ext->m_pCommon = NULL;

必须

    if (ext->m_pCommon != NULL)
    {
        ext->m_pCommon->UninstantiateDevices();
        ext->m_pCommon->Release();
        ext->m_pCommon = NULL;
    }