尝试从以 32 位模式编译的程序调用 SetupDiCallClassInstaller 在 64 位 Windows 上失败。
显然这是设计使然,但我想知道原因。
根据 MSDN:
64 位系统上的设备安装:
32 位版本的应用程序必须检查 UpdateDriverForPlugAndPlayDevices 返回的值。如果返回值为 ERROR_IN_WOW64,则 32 位应用程序正在 64 位平台上执行,并且无法更新收件箱驱动程序。相反,它必须调用 CreateProcess(在 Windows SDK 文档中进行了描述)来启动 64 位版本的应用程序。然后,64 位版本可以调用 UpdateDriverForPlugAndPlayDevices,指定标识所有文件的 64 位版本的位置的 FullInfPath 参数。
所以它看起来就像任何旨在报告的 APIERROR_IN_WOW64
特别是不能在 WOW64 中工作,32 位进程必须调用 64 位进程来调用 API。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)