celiacw1 2022-04-19 13:24 采纳率: 20%
浏览 104
已结题

Windows驱动程序里怎么加载用户模式DLL

我有一个Windows驱动程序(平台工具集 WindowsApplicationForDrivers10.0)做成了一个DLL(可能是用户模式,不是很确定,怎么确定?),想在代码里加载另外一个的DLL(用户模式或者也是WindowsApplicationForDrivers),发现 静态加载或者LoadLibrary加载的时候,总是不成功,
LoadLibrary会陷入假死,请问有什么办法吗?

  • 写回答

8条回答 默认 最新

  • 听风告别:-) 2022-04-19 14:55
    关注

    内核模式中 DLL 的基本问题是 DLL 是否调用任何用户模式代码。如果 DLL 包含除本地内核 API 调用之外的任何内容,那么如果您在编译时试图将驱动程序与其链接,就会产生链接程序错误(内核根本不会加载它)。显然,编译成 Win32 库的 DLL 属于这种类别。即使您在 DLL 源代码中避免进行显式用户模式 API 调用,编译器仍然会在进行堆栈检查、溢出检查和类似操作时经常生成隐式的用户模式支持调用。所以,在 Windows 用户模式开发环境(例如 Visual Studio)中编译的任何 DLL 都不能在内核模式中使用。

    评论

报告相同问题?

问题事件

  • 系统已结题 4月27日
  • 创建了问题 4月19日

悬赏问题

  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签)
  • ¥50 sft下载大文阻塞卡死
  • ¥15 机器人轨迹规划相关问题
  • ¥15 word样式右侧翻页键消失
  • ¥15 springboot+vue 集成keycloak sso到阿里云
  • ¥15 win7系统进入桌面过一秒后突然黑屏
  • ¥30 backtrader对于期货交易的现金和资产计算的问题
  • ¥15 求C# .net4.8小报表工具