原来的驱动开发都是WDM(Windows Driver Model)的,那时微软推出DDK(Driver Developer Kit)工具。
现在微软进行了升级由WDF(Windows Driver Foundation)来替代WDM,同时推出WDK(Windows Driver Kit)工具。
安装WDK要求的最低系统为Win XP SP3以上。
推荐使用的IDE: VS2010...
SPB是Simple Peripheral Bus的简称,直译过来就是简单外设总线,它包括I2C总线、SPI总线。SPB是在Windows 8以后才被驱动支持的,而在之前如果系统想访问I2C外围设备,则只能通过BIOS程序间接的访问,没法直接访问外设寄存器。在系统启动时,ACPI固件会根据配置表扫描SPB设备,并将它们的资源信息传递给PnP(即插即用设备)管理器,这些资源就包括I2C从设备地址、I2C总线时钟频率以及该设备的中断号。需要注意的一点,在ACPI资源配置表中,是不允许使用Memory32Fixe...
今天给大家讲解一下,在KMDF(Kernel-Mode Driver Framework)中是如何调用ACPI配置表中用户定义的Method。在ACPI中,凡是以下划线开头的Method(如_STA)都系统预定义的Method,它们都由Windows OS自己调用,其他用户自定义Method则由驱动程序调用。...
在做Windows Phone驱动开发时,时常需要和注册表打交道,因此,作为手机驱动开发人员,有必要了解一下注册表相关的知识。本人目前对注册表也不怎么了解,也只是大概的知道在Windows Phone下,驱动的inf文件并不像桌面Windows那样提供驱动自动安装程序,在Windows Phone下,inf文件最终会被解析成注册表信息并添加到注册表中。我们驱动往往将一些硬件参数保存在注册表中,因此在软件编程时,自然就会涉及到注册表的读写更新操作。...
驱动程序部分:NTSTATUS
DriverEntry(
IN PDRIVER_OBJECT DriverObject,
IN PUNICODE_STRING RegistryPath
)
/*++
Routine Description:
DriverEntry initializes the driver and is the first routine c...
编译和调试使用WDK编译,源代码应包括wdf.h,ntddk.h以及KMDF_VERSION=1,编译使用/GS。KMDF包括以下库:1). WdfDriverEntry.lib(编译时绑定):驱动入口,调用驱动的DriverEntry。2). WdfMM000.sys:DDI库,安装驱动时候,由co-installer来完成该sys的安装,驱动运行时动态绑定之。3). Wdfldr.sys:引导...
分类:
其他好文 时间:
2015-01-09 09:11:08
阅读次数:
663
继WDM后微软出了WDF,封装了WDM中的一些基本代码逻辑。本人菜鸟,也不知道本质上有何区别,只觉得是多了Wdf开头的函数,基本的编程框架上有点出入。KMDF是WDF的内核级部分,为了理清KMDF的结构,又觉得内核编程很复杂,HelloWorld类型的程序实在说明不了什么 修改一下《windows设备驱动WDF开发》的CharSample,查了WDK帮助文档加上注释以帮助自己理解KMDF的大致运...
有3种常用方式:METHOD_BUFFERED METHOD_IN_DIRECT METHOD_OUT_DIRECT 还有METHOD_NEITHER,《windows设备驱动WDF开发》描述为:源自win 9x的VxD的模式,不建议读者掌握。这个就不管了。 METHOD_BUFFERED:无论读和写都对应同一缓冲区 METHOD_IN_DIRECT\ METHOD_OUT_DIRECT...
彻底卸载的流程
1、删除C:\windows\inf\oem.inf路径下的所有oem文件
2、删除c:\windows\system32\drivers路径下对应的sys文件
3、(重要)
第一步:使用PsExec.exe 获取对注册表的administrator访问权限,PsExec.exe 下载地址 http://techne...
微软的wdk开发包里自带了一些sample,这是些质量不错并且权威的学习资料,最好的学习驱动的方法就是阅读和修改这些代码。其中Ramdisk实现了一个虚拟磁盘,可以作为WDF编程的经典代码材料,《寒江独钓-Windows内核...
分类:
其他好文 时间:
2014-10-15 00:15:39
阅读次数:
820