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);

我得到一个有效的句柄,但我的问题是,当你激活设备驱动程序时究竟会发生什么?我的问题是,驱动程序不会自动获得局域网连接,是我正在做的足以迫使它这样做吗?

ActivateDeviceEx是否启动驱动

您可以加载带有ActivateDeviceExe的流驱动程序,就好像该驱动程序驻留在HKLM'Drivers'BuiltIn子密钥上一样。这些驱动程序由device.exe的驱动加载程序加载。

其他驱动程序,如NDIS Minport驱动程序或USB客户端驱动程序由相应的子系统加载。它们需要被加载到相应的上下文中。调用ActivateDeviceEx既不启动子系统的加载,也不准备上下文使这些驱动进入操作状态。因此,您不能使用ActivdateDeviceExe来加载这些驱动程序。