0

我正在编写一个 Windows DLL,我需要来自 wdm.h 的一些函数。我正在与 ntoskrnl.lib 链接,它编译只是 find 没有警告或错误,当它运行应用程序时,它说找不到 ntoskrnl.exe。但是,该 EXE 位于我的 C:\Windows\System32 文件夹中。到底是怎么回事?

4

2 回答 2

1

该错误令人困惑。这并不意味着它找不到文件,这意味着它无法加载它。您不能在用户模式下加载 ntoskrnl.exe,因为它是内核模式 DLL。其实就是内核。再次加载它没有任何意义。wdm.h 并不意味着包含在用户模式组件中。

于 2015-06-04T15:17:42.590 回答
1

啊,我想我已经解决了这个问题。然后我收到一条警告说 .crt 部分存在。我发现当我处于内核模式时我无法使用 CRT 库。所以我解决了这个问题。现在我有一个问题。如果我在内核模式下创建此驱动程序,我能否在用户模式下使用 C/C++ 程序访问它?

于 2015-06-05T02:37:31.713 回答