为什么Windows驱动套件中没有WDM内核|模式驱动模板?
我遇到了很少的经验的内核模式驱动程序.这是我要做的: 有一个加载驱动程序的用户模式应用程序. 将用户模式应用程序写入其中,以发送指令. 让驾驶员将RDMSR指令发送到Intel芯片. 将结果返回到用户模式应用程序. 我已经阅读了本文这描述了您可以完成此行为的不同方式(缓冲I/O,指导I/O或两者). 我的问题是...文章具有代表您构建 WDM 驱动程序的方式,我希望能够使用Windows驱动程序创建WDM KMDF项目模板套件,但是当我下载Windows驱动程序套件(WDK)时,唯一的KMDF驱动程序模板是 WDF 驱动程序. msdn有一篇文章描述了差异在两个之间.这对我来说很奇怪.我期望将一个模板从包装盒中取出,我可以像我链接的文章一样修改工作,但我看不到.为什么WDM KMDF驱动程序没有模板? 只是一个附加的注释,您可以很容易地根据它创建设备的方式(iocreatedeDevice意味着WDM,而WDFDeviceCreate表示WDF). 解
10 2024-04-10
编程技术问答社区
C和C++中结构的区别
我正在尝试将C ++结构转换为C,但请继续获得"未申报的标识符"? C ++是否具有不同的语法来参考结构? struct KEY_STATE { bool kSHIFT; //if the shift key is pressed bool kCAPSLOCK; //if the caps lock key is pressed down bool kCTRL; //if the control key is pressed down bool kALT; //if the alt key is pressed down }; 我在另一个结构内使用类型key_state的变量: typedef struct _DEVICE_EXTENSION { WDFDEVICE WdfDevice; KEY_STATE kState; } DEVICE_EXTENSION, *PDEVICE_EXTENSION; 导致错误c20
6 2024-04-06
编程技术问答社区
Windows update 1903导致文件系统驱动程序崩溃
我对Windows文件系统KMDF驱动程序有一个严重的问题.问题发生在Windows 10 Ver 1903更新(5月最新更新)之后发生. 在任何给出Windows 10版本的更新之前,驾驶员在更新之前都运行顺利. 当驱动程序开始使用" WDF_VIOLATION"错误运行系统汽车(蓝屏)时. 我使用" Visual Studio windbg"工具打开了系统转储文件,我发现了此错误日志: WDF_VIOLATION (10d) The Kernel-Mode Driver Framework was notified that Windows detected an error in a framework-based driver. In general, the dump file will yield additional information about the driver that caused this bug check. Arguments: Arg1:
18 2023-12-07
编程技术问答社区
如何求解lnk2019在函数gsdriverentry中引用的未解决的外部符号驱动程序?
当我编写此项目时> 我在上面收到了错误消息,该如何解决? 我正在使用VS 2017和WDK10. (必须在发行版中编译,不支持调试模式.该项目中没有驱动程序函数,即HWID.CPP中的入口点(void* ntoskrn,void* image* aLLOC)函数是真实的入口点. ) 我做了很多研究,但仍然没有使它起作用.我是内核模式开发中的菜鸟. 解决方案 项目使用(显然忽略)选项 将EntryPoint定义为条目. 这被记录为在这里 从Windows驱动程序系统调用的Mesage的形式 NTSTATUS DriverInitialize( _DRIVER_OBJECT *DriverObject, PUNICODE_STRING RegistryPath ) 与项目中的入口点不兼容 EntryPoint(void* ntoskrn, void* image, void* alloc) 这
16 2023-12-05
编程技术问答社区
原始PDO发送IOCTL到上层过滤器驱动(kbfiltr/moufiltr)以启用/禁用设备。
我是驱动程序开发的新手,并尝试编写一个简单的过滤驱动程序,该驱动程序将启用或禁用键盘或鼠标设备.如果我可以使它起作用,我想在插入鼠标时使用它来禁用笔记本电脑上的触摸板.我意识到可能已经有软件已经这样做了,但是我对设备驱动程序确实很感兴趣,并且想要学习如何自己做. 我正在使用 kbfiltr 和 moufiltr 示例,该示例与WDK一起运送为上滤波器驱动程序. KBFILTR示例创建了一个PDO,可以通过USERMODE程序进行枚举并连接.这使我可以将ioctls发送到由 kbfilter_evtiodevicecontrolforlawpdo 处理的PDO.但是,当我尝试做任何与过滤驱动程序有关的事情时,例如呼叫 kbfilter_evtiointernalDeviceControl ,这样我就可以做 之类的事情 VOID KbFilter_EvtIoInternalDeviceControl( IN WDFQUEUE Queue, IN WDFRE
22 2023-12-04
编程技术问答社区
为VS 2015企业安装模板
我有VS 2015,而且我也有Windows驱动程序套件10.0,但在VS 2015 Enterprise中,我找不到任何模板来编写KMDF相关的开发.我尝试安装,因此为KMDF或WDF搜索模板,但找不到它.如何在VS 2015 Enterprise Edition中安装KMDF模板?谢谢 解决方案 解决方案很容易.安装VS 2015后,我必须安装WDK,我做到了,而且效果很好.解决问题.
24 2023-11-24
编程技术问答社区
尝试使用软件kmdf驱动程序来定制fromidasync时拒绝访问
我已经准备了一个KMDF驱动程序,该驱动程序是使用MSDN中找到的指南(驱动程序的hsa ,) 我使用的UWP应用程序是CustomCapability CustomCapability DriverEntry, Unload, and EvtDeviceAdd.另外,该驱动程序已经安装,并且在设备管理器中可见,但是没有插入实际/外部设备. 在UWP应用程序中,我可以从设备观察器中看到示例驱动程序.但是,尝试使用以下方式连接/打开驱动程序时: var device = await CustomDevice.FromIdAsync(Id, DeviceAccessMode.Read, DeviceSharingMode.Exclusive); 一个例外System.UnauthorizedAccessException' in System.Private.CoreLib.ni.dll正在抛弃 如下所示: 我已经匹配了两个应用程序所需的所需信息,并且我已经尝试了
14 2023-11-12
编程技术问答社区
FWPS的叫法、用法和参考文献
我想知道对Filter Drivers工作原理的深刻理解.细节和用法是什么? 例如:FwpsCalloutRegister FwpmTransactionBegin FwpmSubLayerAdd FwpmCalloutAdd这些是在许多网络驱动程序样本中使用的函数.是否有任何参考来查看订单或filter drivers的资金是什么? 是什么. FwpmSubLayer的用法是什么? 解决方案 阅读文档: 用户模式: https:https:https:https:https:https:https:https:https:https:https://docs.microsoft.com/en-us/windows/win32/fwp/windows-filtering-platform-start-page 内核模式:
30 2023-04-18
编程技术问答社区
windbg不打印(显示)内核日志(用kdprint和其他日志功能)。
我开始学习使用WDM学习Windows内核驱动程序编程.我写了第一个驱动程序,该驱动程序在开始(输入)和停止(卸载)时打印一些日志.我可以在debugview(dbgview.exe)中看到logs,但windbg无法获得它们. 我设置 " hkey_local_machine \ system \ currentControlset \ Control \ Control \ Session Manager \ Debug打印过滤器" 0xf 并运行 :> bcdedit/debug local Windows版本:2004(Build 1904) WDK10(构建1904) 为什么windbg无法获得日志(但是dbgview显示它们)? 我还要做其他事情吗? 解决方案 您可以使用 dbgprintex 此API不需要编辑reg键: DbgPrintEx(0, 0, "Hello Kernel");
68 2023-04-14
编程技术问答社区
包括aux_klib内核库的未解决的外部问题
下午好,所以我有一个问题,即在我的内核模式驱动程序中包括aux_klib库,出于某种原因,我会遇到所有AUX_KLIB函数的错误. Error 1 error LNK2019: unresolved external symbol AuxKlibInitialize referenced in function "unsigned char __cdecl Main(struct MainInfo*)" (?MainInfo@@YAEPEAU__MainInfo@@@Z) 我在项目中做了#pragma评论(lib," aux_klib.lib"),没有运气,驱动程序也在CPP中编码.我还将LIB添加到我的项目中,并确保它是X64,因为那是项目构建体系结构.我还尝试了通过extern" C"带有out头和lib的功能,但没有运气,我还将所有库路径添加到了链接器设置中,什么也没有.欢迎任何想法! 解决方案 Properties->Linker->Input->Add
28 2023-03-05
编程技术问答社区
在x86上,当操作系统禁用中断时,它们是消失了,还是排队等待中断重新开启?
我的平台是x86和x86-64,在Windows上. 中断优先系统的重点是要使优先级中断最高.为了实施这一点,我猜想窗口将完全禁用较低级别的所有中断,直到更高级别的中断的ISR完成为止. 但是,如果CPU不听中断,会发生什么?他们只是默默消失吗?还是他们在硬件中排队,等待中断再次启用?如果存储在哪里?有限制有多少排队吗?如果未经处理的中断太多,会发生什么?存在哪些仪器来检测问题,以防有罕见的条件中断处理会被打倒? 解决方案 一些背景 中断外围设备的中断不是由CPU直接处理的,而是由称为"可编程中断控制器"的硬件.较早的系统使用了PIC-(Intel 现在要解决您的问题 但是,如果CPU不听中断,会发生什么?他们只是默默消失吗?还是它们在硬件中排队,等待中断再次启用? 快速:在禁用进一步中断的情况下运行, 慢:启用中断. 但是,现在两者之间的区别已经过时了,因为Taskes/Work队列(上半场和下半场 - 铃响了?)使操作员的执行时间较少,因此
40 2023-02-23
编程技术问答社区
Minispy驱动-用户模式调用
在安装驱动程序的花费数小时后,我开始看着Minispy 驱动程序: windows-drinew>/minispy/ 我正在尝试捕获用户打开文件的所有调用.我试图用它打印的所有参数(例如OPR,主要操作...)来完成此操作,但我无法以精确的方式过滤. 如何仅过滤用户调用(打开文件)? 如果用户调用事务,我该如何确定代码中? 非常感谢您的帮助. 解决方案 寻找 FLT_CALLBACK_DATA .RequestorMode - 如果使用minifter.
70 2022-09-01
编程技术问答社区
UMDF,不能为Microsoft |定义的类指定[ClassInstall32]部分
我正在学习下一个教程:如何编写你的第一个 USB 客户端驱动程序. 我在编译项目时遇到了问题,我遇到了下一个错误: 我试图按照教程中的描述执行步骤,但在编译项目时总是出现上述错误. 另外,我试过搜索,但没有找到任何有用的信息. 可能的附加信息,这可能会帮助您给我一条建议: INF 文件:http://pastebin.com/71d6bbQm 使用 Windows 10、最新的 WDK 和 VS2015 已经完全按照教程中提到的 USB User-Mode Driver 模板开始 解决方案 基本上,错误是说您正在尝试创建一个已经存在的类,即 USBDevice 类.由于您正在尝试创建新的 USB 客户端驱动程序,您可以继续删除 类定义 部分. 但是,如果您尝试创建一个新类,请确保该列表中不存在该类名和 GUID:供应商可用的系统定义设备设置类. 如果您想了解有关 INF 文件的更多信息,请查看这篇文章:INF 文件小脑袋熊.
5336 2022-07-17
编程技术问答社区