代码之家  ›  专栏  ›  技术社区  ›  Bob Somers

Windows API:检测驱动程序安装何时完成

  •  4
  • Bob Somers  · 技术社区  · 17 年前

    Bluetooth API

    Installing Bluetooth HID drivers

    Hardware installed and ready for use

    问题是 BluetoothSetServiceState() 开始 ,而不是在设备实际可供使用时。这会给我的代码带来一些问题,因为它一“连接”就调用一个单独的库进行设备通信。前几个调用失败是因为驱动程序尚未完成安装,而进行这些连接尝试似乎会干扰驱动程序的安装,因为如果在驱动程序安装完成之前尝试使用通信库,Windows希望在设备可以使用之前重新启动。

    我正在寻找的是一种在驱动程序安装实际完成时钩住“准备使用”事件的方法,这样我就不会过早地调用通信库。是否有一些Windows API调用可用于注册函数回调或直接轮询驱动程序安装状态?

    我是用香草C/C++写的,不是.NET。谢谢你的帮助!

    3 回复  |  直到 11 年前
        1
  •  4
  •   inazaruk    17 年前

    你可能想看看 this sample code RegisterDeviceNotification 作用我不确定是否100%,但如果为设备类指定正确的guid,它似乎会起作用。

        2
  •  2
  •   Mick    17 年前

    下面是我要做的:

    1. 下载 Winspector (或使用Spy++)
    2. begin watching for Window Messages
    3. 注意WM指示已完成的驱动程序安装

    我希望我能更详细地描述#4,但我不熟悉您需要的具体窗口消息。 Have a look here for possible Window Messages to expect

    CodeProject has an excellent write up on how to do this in C++ . 个人 I'd prefer to do it in Delphi .

        3
  •  0
  •   lakshmanaraj    17 年前

    如果是网络绑定,则RNDIS在按照完成安装时发送消息 RNDIS Driver Implemenation guide 和定义 RNDIS

    Examples