我正在尝试制作一个Windows内核驱动程序,但每次我尝试使用KMDF模板创建一个新项目或者通过Microsoft打开一个示例驱动程序(如键盘过滤器)时,它都不起作用.
在加载现有驱动程序项目的情况下,它"无法加载".重新加载后,我收到消息框,给出了一条令人难以置信的描述性错误消息:"发生了一个或多个错误."
尝试从模板创建新的驱动程序项目时,我得到了相同的描述性消息框.
如何摆脱此错误消息并加载/创建Windows驱动程序?
由于我目前仅限于VS 2015并且不会很快使用VS 2017,我安装的WDK版本被称为"WDK for Windows 10,版本1703",可以在其他WDK下载中找到.
我正在编译这个项目https://github.com/namazso/hdd_serial_spoofer
我收到上面的错误信息,我该如何解决?我正在使用vs 2017和wdk 10.
(必须在发布时编译,不支持调试模式.在这个项目中没有DriverEntry函数,hwid.cpp中的EntryPoint(void*ntoskrn,void*image,void*alloc)函数是真正的入口点.)
我做了很多研究,但仍未能使其工作.我是内核模式驱动程序开发的菜鸟.
我使用的是vs2015和wdk10,我可以在空项目中使用随机。
#include <random>
std::default_random_engine eng;//works fine .
Run Code Online (Sandbox Code Playgroud)
但是当我创建一个空的内核模式驱动程序项目时,我无法在其中使用随机。
#include <random>
std::default_random_engine eng;//namespace "std" has no member "default_random_engine"
Run Code Online (Sandbox Code Playgroud)
其他标准库,如向量和元组也不起作用,所有这些都提醒我命名空间“std”没有成员 XXX(向量、元组等)
我该如何解决这个问题?
我目前正在用 KMDF 编写内核模式驱动程序(软件驱动程序),因为我对这个主题很陌生,所以我想问你我的驱动程序是否能够在任何正在运行的进程上调用 OpenProcess 和 ReadProcessMemory 或者有什么方法可以防止我的驱动程序可以从内核模式在进程上调用这些函数吗?
有人可以解释一下 Windows 驱动程序开发中的 RTL 是什么吗?
开发工具:Visual Studio 2019 驱动程序类型:内核模式 (kmdf)。编程语言:C。
我见过两种安装 Windows 驱动程序的方法。
一种。使用 SYS 文件和 INF 文件。(如 NDIS 驱动程序)
b.仅使用 SYS 文件,驱动程序将由服务加载。(例如 C:\Windows\System32\drivers 中的驱动程序)
所以,我的问题是:
1. 什么样的驱动程序或情况需要 INF 文件?
2. 这种差异的根本原因是什么?
我需要为PCIE写一个串行驱动程序,带有中断,有条件的缓冲DMA和从PC到PCIE的简单读/写请求.我对PC架构的驱动程序和小知识一无所知.平均需要多长时间?