windows驱动编程

windows驱动编程

ID:36012222

大小:71.50 KB

页数:17页

时间:2019-04-29

windows驱动编程_第1页
windows驱动编程_第2页
windows驱动编程_第3页
windows驱动编程_第4页
windows驱动编程_第5页
资源描述:

《windows驱动编程》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、WDM驱动程序开发之读写设备寄存器:KIoRange类2009-11-0914:05WDM驱动程序开发之读写设备寄存器:KIoRange类收藏KIoRange类:一、Overview   KIoRange类将一系列特殊的外围总线的地址映射到CPU总线的地址空间。CPU总线上的地址即可能在CPU的I/O空间,也可能在CPU的内存空间,这取决于平台和外围总线的控制方式。考虑到可移植性,所有对I/O周期(I/Ocycle)进行译码的设备驱动程序必须用这个类对I/O的位置(location)进行正确的访问(access)。KIoRange是KPeripher

2、alAddress类的派生类。   一旦映射关系建立起来,驱动程序就用KIoRange类的成员函数去控制设备的I/O寄存器。这个类提供了8位、16位和32位I/O访问控制的函数。这些函数是以内联(in-line)函数方式来使用的,它们调用系统内相应的宏来产生依赖于平台的代码。   对I/O位置(location)进行访问的另一种备选方案是创建一个KIoRegister的实例。这要通过取得一个KIoRange对象的数组元素来实现。   为了访问一系列外围总线内存空间的地址,需要用KMemoryRange类。二、MemberFunctions1、KIoR

3、ange-Constructor(4forms)   构造函数【函数原型】FORM1:KIoRange(void);FORM2:(NTDDKOnly)KIoRange(  INTERFACE_TYPEIntfType,  ULONGBusNumber,  ULONGLONGBaseBusAddress,  ULONGCount,  BOOLEANMapToSystemVirtual=TRUE);FORM3(WDM):KIoRange(  ULONGLONGCpuPhysicalAddress,  BOOLEANInCpuIoSpace,  ULONG

4、Count,  BOOLEANMapToSystemVirtual=TRUE);FORM4(WDM):(NOTE:ThisformisdeprecatedasofDriverStudioversion2.0.)KIoRange(  PCM_RESOURCE_LISTpTranslatedResourceList,  ULONGOrdinal=0,  BOOLEANMapToSystemVirtual=TRUE);FORM5(WDM):KIoRange(  PCM_RESOURCE_LISTpTranslatedResourceList,  PCM_R

5、ESOURCE_LISTpRawResourceList,  ULONGOrdinal=0,  BOOLEANMapToSystemVirtual=TRUE);【Parameters】   IntfType                   指定总线类型。列举如下:Internal,Isa,Eisa,MicroChannel,TurboChannel,PCIBus。   BusNumber           一个表示总线的整数。这种与IntfType联合起来的表示方法当一个系统上有多条相同类型总线的时候是有意义的。这些数以0为对照并由系统分配。 

6、  BaseBusAddress             被构造的对象所映射到的地址区域的首地址。   Count                      以字节计数的地址区域大小。   MapToSystemVirtual         一个布尔值,用来指明构造函数是否要创建一个到系统非分页内存地址的映射。   CpuPhysicalAddress         CPU总线上的物理地址或被翻译好的外围地址。   InCpuIoSpace                如果I/O范围在CPU总线的I/O空间则为TRUE,否则为FALSE。细节参

7、看KResourceAssignment::Flags。   pTranslatedResourceList    指向一个在KPnpDevice::OnStartDevice中可用的已翻译的资源列表的指针。可以通过KIrp::TranslatedResources获得。   pRawResourceList           指向一个在KPnpDevice::OnStartDevice中可用的原始资源列表的指针。可以通过KIrp::AllocatedResources获得。   Ordinal                    序号。从pTr

8、anslatedResourceList指向的资源列表中指定一个特殊的端口资源。0表示第一个端口,1表示第二

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。