c++ - 我目前正在创建我的第一个 Windows 设备驱动程序 "Hello world."事件。我正在使用 Microsoft Visual Studio 2012。

标签 c++ windows driver

如何生成 .sys 文件以便将其加载到 OSRloader 中?

最佳答案

.sys 文件基本上是一个仅依赖于内核的 .dll 文件。

您将需要 Windows 驱动程序工具包的库(尤其是 ntoskrnl.lib )。
打开项目属性并:

  1. 选择“链接器”(Linker)->“输入”(Input),然后将“忽略所有默认库”(Ignore All Default Libraries) 更改为"is"(Yes)。
  2. 选择“链接器”->“输入”,然后添加 ntoskrnl.lib 其他依赖项
  3. 选择 Linker->System,然后将Driver更改为Driver,将Subsystem更改为Native
  4. 选择 Linker->Advanced,然后将入口点更改为DriverEntry
  5. 选择“链接器”(Linker)->“高级”(Advanced),然后将“图像具有安全异常处理程序”(Image Has Safe Exception Handlers) 更改为“否”(No)(如果有)。

对调试发布配置执行这些操作(您可能无法使用调试版本)。

然后构建。您可能还需要添加其他库(例如 BufferOverflowK.lib )。

关于c++ - 我目前正在创建我的第一个 Windows 设备驱动程序 "Hello world."事件。我正在使用 Microsoft Visual Studio 2012。,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17758342/

相关文章:

c++ - 如何在我的项目中包含常量

c++ - 编辑包含目录的宏 Visual Studio 2010

c++ - 如何找到字节的排列或组合?

python - 如何制作当前鼠标指针的位图?

windows - 有什么方法可以让 Windows 在不重启的情况下重新加载驱动程序?

c++ - 哪些 API 可用于在 Windows 文件系统上创建驱动器?

c++ - ObReferenceObjectByHandle 错误检查,内存访问冲突

c++ - 在容器中查找高于阈值的最大和最小元素

windows - 如何从 Windows QML 应用程序中删除边框

python - 为什么 Python subprocess.check_call 无法启动 abc(1).bat? (文件名中的括号)