为什么SetupDiCallClassInstaller函数仅限于64位程序?

2023-11-23

尝试从以 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(使用前将#替换为@)

为什么SetupDiCallClassInstaller函数仅限于64位程序? 的相关文章

随机推荐

  • 停止 NSRunLoop

    我在线程中有一个连接 因此我将其添加到运行循环中以获取所有数据 NSRunLoop currentRunLoop run connection scheduleInRunLoop NSRunLoop currentRunLoop forMo
  • 在 SQL Server 中匹配街道地址的方法有哪些?

    我们有一个街道地址列 枫树路123号第一大道 321 号ETC 有什么方法可以将这些地址与给定的输入相匹配吗 输入将是街道地址 但格式可能不同 例如 枫树路123号第一大道321号 我们的第一个想法是删除所有街道术语的输入 rd st av
  • postgresql 8.2 中的嵌套事务?

    我正在研究应用数据库架构更新的脚本 我已经使用启动事务 提交设置了所有 SQL 更新脚本 我在命令行上将这些脚本传递给 psql 我现在需要在一笔事务中同时应用多个脚本 到目前为止 我想出的唯一解决方案是从原始脚本集中删除启动事务 提交 然
  • 开发 ActiveX 控件

    我想开发一个 ActiveX 控件 但由于我没有 Visual Studio 我想知道是否可以单独使用 VisualC Express 版本 还是还需要 Windows Platform SDK 您不需要 Visual Studio 来编写
  • 当我们说 Hashtable 或 Vector 是同步的时,这意味着什么?

    这些问题说明了一切 只是想知道 在面试中 当他们问你 Hashtable 或 Vectors 同步实际上意味着什么 时 你会说什么 实际上它意味着两件事 不要使用它们 除非您要在线程之间共享它们 如果不只是使用 HashMap 或 Arra
  • 有没有办法检查处理器缓存最近是否已刷新?

    在 i386 linux 上 如果可能的话 最好在 c c posix std libs proc 中 如果没有 是否有任何程序集或第三方库可以做到这一点 编辑 我正在尝试开发测试内核模块是否清除缓存行或整个处理器 使用 wbinvd 程序
  • 如何使用 JavaScript / HTML5 创建 .txt 文件?

    我是 javascript 新手 互联网上所有与使用 JavaScript 创建文本文件相关的代码在我的笔记本电脑上都不起作用 任何人都可以给我想法或可能的代码 这段代码应该可以工作 请尝试一下 如果这不起作用 则可能是您的浏览器存在问题
  • 检查 ASP.NET CheckboxList 中的多个项目

    我尝试检查 ASP NET CheckboxList 中的多个值 但我做不到 我写 chkApplications SelectedValue 2 chkApplications SelectedValue 6 但它只选择值为 6 的项目怎
  • Tensorflow Dataset.from_generator 失败并出现 pyfunc 异常

    我正在根据需要尝试tensorflow的nightly 1 4Dataset from generator将一些可变长度的数据集拼接在一起 这个简单的代码 想法来自here import tensorflow as tf Dataset t
  • Kubectl 仅获取工作节点

    是否有任何快捷方式或 kubectl 命令或 REST API 调用来仅获取工作节点列表 不包括主节点 Update 对于高手我们可以这样做 kubectl get nodes selector node role kubernetes i
  • 通过r更新postgresql数据库中的表

    如何通过 R 使用新数据更新 postgresql 数据库中的数据 我试过了 dbGetQuery con UPDATE table SET column1 1 column2 2 column3 3 where id 4 data Rda
  • JasperReports 5.6:无法加载以下字体

    我面临的问题是贾斯珀报告仍然找不到 Arial 字体 我创建了一个具有以下结构的简单 Maven 项目 并将其包含到我的主应用程序中 因此主应用程序在类路径中包含已安装的 JAR jasperreports extension proper
  • 限制Python导入的范围

    我有一些代码看起来像这样 from pyparsing import Word alphas Optional Do stuff And at the end save a result to the outside world parse
  • 通过 ADO.NET 检索 SET STATISTICS IO 和 SET STATISTICS TIME 值?

    通过 Management Studio 执行 T SQL 查询时 我可以使用SET STATISTICS IO ON and SET STATISTICS TIME ON捕获查询优化的统计信息 当我使用 NET 客户端 API 执行 T
  • 如何在 C++ 中将 yuy2 转换为 BITMAP

    我正在使用安全摄像头 DLL 从摄像头检索图像 DLL 调用我的程序的函数 将图像缓冲区作为参数传递 但图像是 yuy2 格式 我需要将此缓冲区转换为 RGB 但我尝试了在互联网上找到的每个公式 但没有成功 我尝试过的每个例子 包括http
  • XCode 4 中的“合并高分辨率艺术作品”?

    在 XCode 4 中 当处理 iOS 项目时 也许 XCode 3 中也有 只是我没有注意到 构建设置下有一个名为 组合高分辨率图稿 的字段 可以将其设置为是或否 这个设置具体有什么作用呢 来自 Xcode 的快速帮助 合并高分辨率图稿
  • Intellij 15 + Github - 无法克隆存储库,出现“存储库测试失败”错误

    我有 Intellij 15 和一个 Github 帐户 我正在尝试将两者结合起来 我进入设置 gt 版本控制 并添加了 Github 以及主机 用户名和密码 当我单击 测试 时 它起作用了 我还安装了 GitHub 可执行文件 并将其添加
  • 如何在 ggplot 命令中激活两个不同的scale_fill_manual

    这个问题源于我的较早的一个关于ggplot2中的背景颜色 从那里的答案 我现在可以使用geom rect为我的情节提供五种不同颜色的背景 最重要的是 我想绘制一个使用两种不同颜色的条形图 我可以单独完成这些任务中的每一个 但是当我尝试将它们
  • 错误:灵活数组成员不在结构末尾

    我的结构如下所示 typedef struct storage char data int lost index int lost index size int size int allowed memory key size int al
  • 为什么SetupDiCallClassInstaller函数仅限于64位程序?

    尝试从以 32 位模式编译的程序调用 SetupDiCallClassInstaller 在 64 位 Windows 上失败 显然这是设计使然 但我想知道原因 根据 MSDN 64 位系统上的设备安装 32 位版本的应用程序必须检查 Up