ActivateDeviceEx是否启动驱动
本文关键字:启动 是否 ActivateDeviceEx | 更新日期: 2023-09-27 18:12:27
我正在开发一个Windows Mobile 6.1应用程序,我遇到了一个问题,当移动设备被停靠时,它加载USB驱动程序用于以太网连接,并在它被卸载时卸载它。几次之后,驱动程序似乎没有加载,所以我的解决方案是从应用程序本身手动加载它。
下面是我的p/Invoke声明和用法:[DllImport("Coredll.dll")]
extern static IntPtr ActivateDeviceEx(string device, IntPtr regEnts,
UInt32 cRegEnts, IntPtr devKey);
IntPtr handle = ActivateDeviceEx(
"Drivers''USB''ClientDrivers''ADMTEK_LANUSB_Driver",
IntPtr.Zero, 0, IntPtr.Zero);
我得到一个有效的句柄,但我的问题是,当你激活设备驱动程序时究竟会发生什么?我的问题是,驱动程序不会自动获得局域网连接,是我正在做的足以迫使它这样做吗?
您可以加载带有ActivateDeviceExe
的流驱动程序,就好像该驱动程序驻留在HKLM'Drivers'BuiltIn
子密钥上一样。这些驱动程序由device.exe的驱动加载程序加载。
其他驱动程序,如NDIS Minport驱动程序或USB客户端驱动程序由相应的子系统加载。它们需要被加载到相应的上下文中。调用ActivateDeviceEx
既不启动子系统的加载,也不准备上下文使这些驱动进入操作状态。因此,您不能使用ActivdateDeviceExe
来加载这些驱动程序。