windows - 在 UWP C++ 应用程序中找不到 DeviceIOControl API
问题描述
我想转换与内核模式驱动程序(WDM 驱动程序)交互的现有应用程序代码。对于 IOCTL,我使用的是 DeviceIoControl API。
为了将我的应用程序移植到 UWP,我正在使用此链接:https ://docs.microsoft.com/en-us/cpp/porting/how-to-use-existing-cpp-code-in-a-universal-windows -platform-app?view=vs-2017。
应用链接中提到的项目属性更改后,我收到错误,因为找不到 DeviceIoControl 标识符。这就是我面临的问题。是否有可用的示例应用程序/API 代替 DeviceIoControl?
解决方案
实际上,我们在 RS5 中将DeviceIoControl添加到了允许列表中。您需要先获得设备的 HANDLE,这需要进行两次更改
- 调用 CreateFileFromApp 而不是 CreateFile
- 正在打开的设备需要授予对应用容器的访问权限。如果您拥有驱动程序并且它是自定义设备接口,则可以使用自定义上限。
如果您正在访问框内定义的设备接口,则无法直接获得该设备的 HANDLE。如果您的 MSR 访问驱动程序是 pnp 驱动程序,您可以使用上述指南。
推荐阅读
- python - 无法在 anaconda 环境中运行预提交
- c++ - C++ 中 make_unique 或 make_shared 的好处是什么?
- sql - 如何在 SQL 中获取列的特定先前值
- python - 将应用程序导入 urls.py
- sql - 计算在给定日期时间中至少有 1 条记录,并且 Hive 中每个日期时间至少有 1 条记录
- mongodb - mongodump 无法识别 --uri
- javascript - 最长的公共前缀 javascript 分而治之
- javascript - 我应该如何处理 webpack 中的前端路由?
- javascript - 基于地理限制和自定义图标的传单标记集群?
- design-time - KryptonToolkit 迁移到 SharpDevelop 成功,但在设计时无法添加控件