Windows2000设备驱动程序
WINDOWS2000驱动安装
WINDOWS2000驱动安装注:WINDOWS9X不必安装此驱动打开“控制面板”后按图示进行操作.图1」图1.2图13Standard101/102-KeyorMicrosoftNaturalPS/2Keyboard属'Standard101/102-K«yorMicrosoftNaturalFS/2Keyboard驱动程序提供商:Microsoft驱动程序日期:2003-6-Z0驱动程序版本:5.0,2195.6717数字筌名程序:MicrosoftWindows2000Fublisher要查阅有关为该设备加载的驱动程序文件的详细信息,造单击“驱动程序详细信息”。
要卸载该设备的驱动程序文件」诘单击“卸载”。
要更新该设备的驱动程序文件,语单击“更新驱动程序”。
执行此项/、驱动程序详细信息矿卸载QT)I更新驱动程序区).・・确定I取消I图1.4升颌设备哭动程序向导欢迎使用升级设备驱动程序向导此向导帮助您为硬件设备升级驱动程序口要继侯,诸单击“下一步执行“下一步”;、图1.5升级设备驱动程序向导安装硬件设备驱动程序设备驱动程序是可使硬件设备与糜作系统工作的软件程序.该向导将为下列硬件设备更新驱动程序:Standard101/102-KeyorMicrosoftNaturalPS/2KeyboardIIiTi|将设备驱动程序更新到新的版本有可能增进这个设备的性能或增加功能。
您期望向导做什么?r搜索适于我的设备的驱动程序能荐)⑤”G费示m知设备驱动程序的史版;从中选掾脖定驱动程序⑥:T)•・•••••••••••••••・•・・・••・・••••••••••・•・・・•••・•・•••・・•・••••••・•・■•・・・・・■••••••••・•・■•・•••••••••••••・•・・・••・・•・••••••・•・■••••••••••・•・■•・•・•••♦•・・・••••・)选择此项并执行〃下一步<上一步也)於一步3),取消|图1.6图1.7图1.8出现上图(图1.8)后点击”浏览”项,指定驱动所在的文件夹的路径,驱动放在我们提供的“driver”文件夹里. 查找文件|a driver 三|Q .甘心力找到驱动所在的文件夹选择此项并“打开” W:Ikbdriver.inf(1):|安装信息[*.一£)查找范围(1):便件更新向导选择要为此硬件安装的设备骗动程方型号安3杜要<上一步也)|下一步值)>1取消I图1.10硬件更新向导选择要为此要件安装的设备斐动程存请选定硬件的厂商和型号J然后单击“下一步”。
Windows2000下PCI数据采集卡WDM驱动程序设计
的数 据 传 输 设 备 时 .需 要 开 发 相 应 的设 备 驱 动 程
序 。 常 开 发 P I 备 驱 动 程 序 有 多 种 模 式 , 如 通 C设 例 VD ( x 虚拟 设 备 驱 动 程 序 )WD ( n o sD v r 、 M Wid w r e i Mo e 等 。 文 针 对基 于 P I 线 的数 据 采集 卡 . d) 本 C总 编
通 讯 作 者 简 介 : 秀 琴 (9 0 , , 肃 省 平 凉 市 人 , 究 员 , 士 苏 16 ) 女 Wid w 0 0中 的设 备 驱 动 程 序种 类 no s 0 2
维普资讯
15 52
科 学 技 术 与 T 程
④ 2 0 S iT c . nn . 0 6 c. eh E g g
Wid w 0 0 P I n o s 0 下 C 数据采集卡 WD 2 M 驱动程序设计
张 广 华 苏 秀琴 李 哲
( 国 科 学 院 西 安 光 学 精 密 机 械 研 究 所 光 电 测控 研 究室 , 安 70 6 ) 中 西 10 8
维普资讯
第 6卷
第 1 1期
20 0 6年 6月
科
学
技
术
与
工
程
Vo .6 No 1 J n 2 0 1 . l u. 06
1 7 —8 5( 0 6 1 —5 1— 5 6 1—1 1 2 0 、 1—1 5 — 0
S in eTe h oo y a d E gn e n ce c c n lg n n i e r g i
中图法分类号
T 3 5 ; 文献 标 识码 P 1. 12
windows设备驱动程序WDF开发(1)
windows设备驱动程序WDF开发(1)武安河另外讲WDM的书是《windows 2000/xp wdm设备驱动开发》KDMF 构建在WDM之上,内核级,sys⽂件UDMF ⽤户级,dll⽂件第1章 Windows 2000和WDM驱动程序1.中断优先级(IRQL): 32个中断级别,可打断0 : PASSIVE_LEVEL, 常规线程1:APC_LEVEL, 异步调⽤过程2:DISPATCH_LEVEL, 延迟过程调⽤3~26: DIRQL, 硬件中断2. 在DISPATCH_LEVEL 运⾏代码时,访问⾮分页内存是⼀个根本原则第2章 KMDF驱动程序框架1. 环境变量结构_DEVICE_CONTEXT{}pDeviceContext = GetDeviceContext(Device);2. 创建对象的⽅法KMDF控制的对象⽣命周期:WDFDRIVER, WDFDEVICE, WDFFILEOBJECT, WDFREQUEST (IRP)3. KMDF结构1)DriverEntry:设置 EvtDeviceAdd (安装时调),WdfDriverCreate 创建驱动对象2) EvtDriverDeviceAdd: 新设备被枚举时会调⽤,职责:创建设备对象,I/O队列,GUID接⼝,事件回调例程,WdfDeviceCreate, WdfDeviceCreateDeviceInterface, WdfDeviceInitSetExclusive(DeviceInit,TRUE); // 独占,只允许⼀个应⽤打开WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUE(&ioQueueConfig, WdfIoQueueDispatchSequential); // IO为串⾏ WdfIoQueueCreate // io队列WdfDeviceCreateDeviceInterface // guid接⼝3)I/O处理例程WDF_FILEOBJECT_CONFIG_INIT(&FileConfig,EvtDeviceFileCreate, EvtFileClose, EvtFileCleanup);ioQueueConfig.EvtIoDeviceControl = PCI9056WDF_EvtIoDeviceControl; // DeviceIoControl 调⽤ioQueueConfig.EvtIoRead = PCI9056WDF_EvtIoRead; // ReadFileioQueueConfig.EvtIoWrite = PCI9056WDF_EvtIoWrite; // WriteFile第3章基本对象1. WDFREQUEST: I/O请求,即IRPWdfRequestComplete :完成请求WdfRequestCompleteWithInformation :完成请求,完成的传输字节数WdfRequestRetrieveInputBuffer: 获取输⼊缓冲器地址WdfRequestRetrieveInputMemory: 获取输⼊缓冲器地址,形式为WDFMEMORYWdfRequestRetrieveInputWdmMdl: 获取输⼊缓冲器地址,形式为MDLWdfRequestGetIoQueue:返回队列对象WdfRequestGetFileObject: 返回⽂件对象WdfRequestGetInformation: 完成的传输字节数WdfRequestCreate: 创建IO请求2. IO请求(IRP)基本操作取消IO请求:编写取消例程向下传递IO请求3. WDFQUEUE 队列, WdfIoQueueDispatchSequential 串⾏初始化默认队列 WDF_IO_QUEUE_CONFIG_INIT_DEFAULT_QUEUEWdfIoQueueCreateWdfIoQueueStart : 启动接收和分发IRPWdfIoQueueStop:暂停分发,但还接收WdfIoQueueDrain: 停⽌接收,但分发WdfIoQueuePurge: 停⽌接收,取消队列中的IRP4. WDFTIMER, WDFDPC, WDFWORKITEM, WDFMEMORY5. 数据同步1)⾃旋锁运⾏在DISPATCH_LEVEL(⾃动提升),因此不能访问分页内存WdfSpinLockCreate, WdfSpinLockAcquire, WdfSpinLockRelease2)WDFWAITLOCK 运⾏在PASSIVE_LEVEL, 同步锁WdfWaitLockCreate, WdfWaitLockAcquire, WdfWaitLockRelease6. 字符串CHAR, WCHAR, STRING, UNICODE_STRINGWDFSTRING: WdfStringCreate串处理函数:strlen之类7. 队列编程 QueueSample// 因为取消例程等要⽤环境变量,所以⽤⼀个设备对象范围同步(重要)deviceAttr.SynchronizationScope = WdfSynchronizationScopeDevice;调⽤例程,取消例程,定时器回调例程,都⽤了设备对象范围同步,所以运⾏在DISPATCH_LEVEL,不能⽤分页内存。
Windows 2000、XP、2003五大根键重点解析
Windows 2000/XP/2003五大根键重点解析一.HKEY_CLASSES_ROOT根键1.扩展名与应用程序的对应关系Windows所支持的文件类型(这些文件具有一定的文件扩展名)在HKEY_CLASSES_ROOT根键下定义。
下表中列出了HKEY_CLASSES_ROOT根键中的文表12.特殊扩展名与应用程序的对应关系我们在注册表编辑器中可以发现,HKEY_CLASSES_ROOT根键下的文件扩展名子键(如*、bas等)前面有“+”符号,而且在此文件扩展名中没有对应的应用程序。
为了查明这些文件后缀与应用程序之间的关系,我们必须单击“+”一次或者几次,才可以看到它们的关系。
下面简要地介绍这些特殊的文件后缀子键。
(1)*子键*子键下面具有如下层次结构(如图1):HKEY_CLASSES_ROOT\*HKEY_CLASSES_ROOT\*\shellexHKEY_CLASSES_ROOT\*\shellex\PropertySheetHandlersHKEY_CLASSES_ROOT\*\shellex\ContextMenuHandlers\{a2a9545d-a0c2-42b4-9708-a0b 2badd77c8}此层次结构说明了*子键的文件类型与Windows系统中的外壳扩展中的属性页句柄建立了一种关联。
图1(2).bmp子键bmp子键下面具有如下层次结构:HKEY_CLASSES_ROOT\.bmpHKEY_CLASSES_ROOT\.bmp\ShellNew在ShellNew子键下面只有一个设置:NullFile=:将NullFile设置为空串,以便能将.bmp文件扩展名添加到系统的新建菜单中。
二.HKEY_CURRENT_USER根键HKEY_CURRENT_USER根键中保存的信息(当前用户的子键信息)与HKEY_USERS\.Default分支中所保存的信息基本是相同的,如图2:图2任何对HKEY_CURRENT_USER根键中的信息的修改都会导致对HKEY_USERS\.Default中子键信息的修改,反之也是如此。
Windows2000下PCI数据采集卡WDM驱动程序设计
⑥ 2 0 S iT c . n n . 0 6 c. e h E g g
Wid w 2 0 下P I n o s0 0 C 数据采集卡WD M驱动程序设计
张广华 苏秀琴 李 哲
( 国科 学 院西 安 光 学 精 密 机 械 研 究 所 光 电测 控 研 究 室 , 安 7 0 6 ) 中 西 10 8
研究 方 向 : M驱 动 程 序 开 发 研 究 。 WD 通 讯 作 者 简介 : 秀琴 (9 o ) 女 , 苏 16 一 , 甘肃 省平 凉 市人 , 究 员 。 研
程 序模 型 ( aee 3 一 iD v eD vr d ) L y rd 2 bt ei r e e 。它支 c i Mo 持 即插 即用 ( n ) P P ,遵 循 电 源 管 理 协 议 ,并 能 在
维普资讯
1 期 2
张广 华 , : n o s0 o P I 据采 集 卡 WD 等 Wid w 2 0 下 C 数 M驱 动 程 序 设 计
13 63
Wid w 8 n o s9 和Wid w 2 0 间实 现 源代码 级兼 容 。 n o s0 0
图2 Wid w 2 0 中的 设 备 驱 动 程 序 种 类 n o s0 0
2 WDM 模 型 . 2
20 年 2 06 月4日收 到
第 一 作 者 简 介 : 广 华 (9 O ) 男 , 西 省 西 安 市 人 , 士 研 究 生 。 张 18 一 , 陕 硕
WD M来 源 于Widw T 分层 3 位 设 备 驱 动 n o sN 的 2
维普资讯
第 6卷
第 l 2期
20 0 6年 6月
科
学
技
术
Windows2000USB接口驱动安装步骤
USB接口设备驱动的安装说明1、USB接口设备驱动的安装步骤(1)硬件安装:将USB接口设备插入计算机的USB接口中,会出现一个画面如图1所示,说明计算机已找到新硬件。
图1 图2(2)为驱动程序指定位置:点击下一步,如图2所示,选择“搜索适于我的设备的驱动程序(推荐)”,再点击下一步,如图3所示,选择“指定一个位置”,点击下一步如图4所示,然后点击“浏览”。
选定驱动程序的位置(根据驱动程序放的位置不同而选择不同的路径)。
如果F盘为光驱,将与实验箱配套的光盘放入光驱,指定路径为F:\usb驱动\window,如图5所示,选定路径后点击打开。
在如图6中点击确定,完成驱动程序的指定。
图3 图4图5 图6(3)完成安装;在图6中确定后出现如图7所示,已找到最新的USB设备的驱动程序,开始安装驱动程序所需的信息和文件,点击下一步出现如图8所示,点击完成后,则USB设备驱动程序已全部安装完成。
2、查看USB设备的信息选择“我的电脑”点击右键,选择“属性”就出现系统特性,对话框显示如图9所示。
图7 图8选择“硬件”选项卡,选择“设备管理器”,选择“查看”→“依类型排序设备”。
再双击“端口(com 和LPT)”如图10所示,可以看到(prolific usb-to-serial bridge(com3)桥控制器)。
注意!这个com3在通信过程中要与usb接口设备的上位机软件中通信口设置一样,否则会出问题。
图9 图103、注意!(1)不要直接在驱动程序文件夹中,点击setup来直接安装USB设备的驱动程序。
(2)这个过程是在win2000系统中的安装过程,在win98和winxp中,步骤一样,可能有些不同的图片。
WDM 介绍
Communication between WDM Driver and AP
WDM 驅動與應用程式的通信方式: 為設備創建符號鏈接法:在驅動程式中用 IoCreateDevice() 創建新的設備對象的時候給新創 建的設備對象取個名字; 然后調用 IoCreateSymbolicLink() 創建一個符號鏈接;之后在应用 程序中调用 Createfile()打开驱动程序。
Innovating Customer Value
The Composition of WDM
一個完整的 WDM 驅動程序,除了包含驱动程序源文件,還包含 MAKEFILE, SOURCE, .RC和 .INF 文件: SOURCE檔 主要是用來指定編譯的源文件; MAKEFILE檔 在 WDM 驅動中都是一樣的,不需要修改,它存在的原因是在用“ build“編譯 WDM 驅動程序的時候,大部分的編譯工作 build 會傳遞給 NMAKE 來執行;
IANC Confidential
Innovating Customer Value
WDM Filter Driver Programming
Programming Process: WDM 驅動程序是一些例程的集合,它們被動的存在,等待主機系統軟件(PnP 管理器、 I/O管理器、 電源管理器等)來調用或激活它們。一個 WDM 驅動程序至少包括 5 個例 程: 1)驅動程序入口例程:處理驅動程序的初始化; 2)即插即用例程: 處理 PnP 設備的添加、刪除和停止(包括IRP_MJ_PNP .etc); 3)分發例程: 處理用戶應用程序發出的各種 I/O 請求(包括 IRP_MJ_CREATE \ IRP_MJ_READ \ IRP_MJ_WRITE\ IRP_MJ_DEVICE_CONTROL .ect); 4)電源管理例程:處理電源管理請求(包括 IRP_MJ_POWER) 5)卸載例程: 處理驅動程序的卸載。
Windows2000下ISA卡驱动程序的开发
兵工自动化 软件技术 O. I. Automation 2003年第22卷第3期 Software Technique 2003, Vol. 22, No. 3・49・文章编号:1006-1576(2003)03-0049-03Windows 2000下ISA 卡驱动程序的开发冯毅1,梅海青1,王霞2(1. 华南理工大学 工控学院,广州 510640;2. 华南师范大学 数学系,广州 510000) 摘要:Windows 2000环境下,使用WinDriver ,通过用户态API 函数,可开发基于ISA /EISA /PCI /USB 等总线的用户驱动程序,实现对硬件的操作。
WinDriver 安装后,利用开发向导选择设备和驱动程序类型,定义I /O 等资源和地址范围,即能完成对I /O 的直接读写。
以ISA K812A 卡驱动程序为例,其开发步骤是:调用WD_Open() 函数以返回WinDriver 设备句柄,调用WD_CardRegister() 以注册硬件,调用WD_Transfer()进行数据读写操作,如有中断则调用WD_IntEnable()、WD_IntWait()、WD_IntDisable() 函数来处理。
关键词:驱动程序;WinDriver ;ISA 卡;I /O 中图分类号:TP3111.11 文献标识码:ADevelopment of ISA Device Driver under Windows 2000FENG Yi 1, MEI Hai-qing 1, WANG Xia2(1. Dept. of Automation, South China University of Technology, Guangzhou, 510640, China;2. Dept. of Math, South China Normal University, Guangzhou, 510000, China) Abstract: On Win2000 platform, hardware driver for ISA /EISA /PCI /USB can be developed withWinDriver , through API interface functions. After installation WinDriver, WinDriver wizard can help users select drive types, define I /O resources and address range, write /read I /O port directly, and the n, hardware operation is realized. Taken the driver of ISA k812 card as an example, its main procedure is as below: first the driver handle can be obtained by means of WD_Open, then hardware information can be registered by means of WD_CardRegister(), at last data read-write operation is realized by means of WD_Transfer(). If signal is interrupted, it is disposed by the functions of WD_IntEnable(), WD_IntWait(), WD_IntDisable().Key words: WinDriver; Device Driver; ISA; I /O1 前言Windows 2000是一个多任务非实时操作系统,整个操作系统被分为核心态模式和用户态模式两部分[1]。
基于WDM的Windows2000驱动开发技术
不 必 考 虑 如 何 控 制 硬 件 【】 1 。在 W id w 2 0 n o s0 0操 作 系统 下 , 为
了 防 止 用 户应 用 程 序 对 系 统 内存 和操 作 系统 的 地 址 空 间进 行 任 意 存 取 ,引 起 系 统 出 错 , I 0 0系统 采 用 了分 层 的 系统 W N2 0
g v sa d v lpm e tisa e,a d o bne i n tnc o i to c eh sa o es sofW DM e ie d i e e do i e e eo n n tnc n c m i st s i a e t n r du em t od nd pr c se h s d v c rv rd v pm e t nd n ,a
A b t a t I v e oft o e a ou e ie rv r de eop e f wi ows 0 ,t spa ri to c sW ido rv r s r c : n i w he pr blm b t d vc d ie v l m nto nd 2 00 hi pe n r du e n ws D i e
通 信 论 坛
计 算 机 与 网 络 创 新 生 活
基 于 WD 的 Wid w 2 0 M n o s0 0 驱动开发技术
李 松 殷 杰 波
( 中国船 舶重 工集 团公 司江苏 自动化 研 究所 江苏 连 云港 22 0 ) 20 6
【 要】 摘 针对 W no s 0 0 开发 驱 动程 序 的 问题 , 绍 了 W n o s 动 程序 开 发 模 型 (D) 分 析 了该 模 型 的 工作 原 理 , idw 2 0 下 介 id w 驱 WM,
Windows2000下虚拟串口WDM驱动程序的开发
VOl2 _ 2 No. 1
Ma.0 r 2 08
Widws 0 0下虚拟 串 口 WD 驱 动程序的开发 no 0 2 M
孙筱 萌 ,夏 斌 ,韩德红 ,方 晓
( 空军雷达学院电子对抗系,武汉 4 0 1 ) 3 09
摘
要 : 对 传 统 R 3 针 S22串行 通 信 存 在 的 通 信 距 离、 口数 量 等 多 个 方 面 的 限制 , 出 了在 Wi o s 0 0 端 提 n w 2 0 d
和 WD 驱 动程 序 , M 并且 对 D K函数进 行 了类 的 D
作 者 简 介 : 筱 萌 (9 1 )女 , 师 , 要 从 事 计 算 机 技 术 与 应 用 研 究 孙 17 ~ , 讲 主
维普资讯
和 s 砌C 等开 发工具 . r eWok 用 于开发 K 0 E D v r rs i MD
WD Wi3 r e Mo e) 即 W i o s 动 M( n 2D vr d1 , i n w 驱 d
收 稿 日期 :0 71- ; 修 订 日期 :071-2 2 0—1叭 20 —1 2
中图 分 类 号 : P 9 T 31 文 献标 识 码 : A
在 工业 串行 通信 领域 中 ,R .3 S22是会 被经 常
用 到 的数据 传输 标 准之一 . 例如 , 通 P 普 C一 般 会
提 供 1 4 标 准 R .3 端 口 , 作或 编程 这些 标 .个 S2 2 操 准的 C M端 口也是 非常方便 的. O 但是 , 传统 R .3 S2 2 串行通信 存在着 数据 可靠性 、 信距 离 、 口数 量 通 端 等 多个方 面 的限制 . 文先利 用Z G A 本 L C N接 口卡 、 C N 3MB转换 器等设备 实现 远程 R .3 A 22 S22通信 的 设备驱动软件即虚拟 串 口服务器 ; 然后结合 N Mea u g 公 司 的D ieS d 给 出 了虚 拟 串 口设 备驱 动程 序 r r的配 置工具 , 运行
基于DriverStudio的Windows 2000设备驱动程序
Ke wo d : i e S u i o ls f wa e De i ed i e ; DM r m e y r s Drv r t d o t o —o t r ; v c rv r W fa
0 引 言
由于 W id ws2 0 n o 0 0采 用 系统 保 护 模 式 ,所 有 涉 及 硬 件 读 写 及 中 断 操 作 ,都 必 须 通 过 内核 W D M 驱 动 完 成 , 禁 止 用 户 层 的 应 用 程 序 直 接 访 问硬 件 ,
Di c、B f r r t uf 、非 Di c 和 B f r e e r t e u f 。在 选 取 渎写 方 e
式 时应注意 ,当需要 快速传送 大量 数据 时, 用
Di c IO, 反之 用 B f r / r t/ e u f O。 eI
故 需 要 开 发 设 备 驱 动 程 序 以 支 持 用 户 访 问硬 件 。
t a e p og a nd dec he f m r r m a l odi O ene a e .ys tl s 。i t li g a li he drv o a . ng t g r t s ;a a t nsa ln nd ca lng t i erpr gr m
维普资讯
兵 工 自动 化
软件开发与应用
Ex oia i d pl t ton an Applca i f w a e i ton ofSo t r
o .I .Aut ai om ton 20 06,Vo1 .25 ,N o.9
20 0 6年 第 2 5卷 第 9期
关键 词 :D ieSu i r r tdo工具 软件 ;设 备 驱 动程 序 ;WDM 框 架 v 中图 分类 号 :T 3 9 文 献标 识码 :A P 1
软件狗驱动程序安装
软件狗驱动程序安装说明
软件狗Windows2000平台驱动程序安装过程如下:
1、用鼠标右键单击桌面上我的电脑,从弹出菜单中选择属性,就会出现如下对话框。
点击硬件向导。
2、出现下面的向导对话框后,点击下一步。
3、选择添加/排除设备故障,点击下一步。
4、Windows2000作新硬件检测。
5、选择添加新设备,点击下一步,如下图所示。
6、不要让Windows2000搜索新硬件。
请选择“否,我想从列表选择硬件。
”,然后,单击下一步。
7、硬件类型请选择其它类型。
单击下一步。
8、出现选择设备驱动程序的对话框时,选择从“磁盘安装”。
9、在“厂商文件复制来源”编辑框处,键入驱动程序所在的目录,或者通过单击旁边的浏览按钮选择驱动程序所在的目录。
然后单击确定按钮。
10、选择SoftDog,然后单击下一步。
11、出现开始安装画面,单击下一步。
12、Windows2000会进行文件复制和安装的工作,稍等片刻,出现安装完成提示。
这时选择完成按钮,软件狗的驱动程序就安装完成了。
Windows2000下智能通信板WDM设备驱动的开发
增加 了 电源 管理 和 即插 即用 功 能 (n ) pp 。此 外 , WD M还是一个跨平台的驱动程序模型 , 以在不 可 修改源代码的情况下经过重新 编译在非 I e平 台 nl t
上运 行 。
一
前台操作 系统 。 智能通信板( B板 ) c 拥有一智能通信控制器 ,
板上采用 P I C 总线 , 提供 了 8 个独立 的串行通道 。
Dsa h -i 上一些 可选 的标 准 函数 和 内部函 i t Wm, pc 加
数, 例如 , 需要对 IP排 队的驱动程序一般都有一 R 个 S ro t t 函数, ai 执行 D A传输 的驱动程序应有一 M
个 A atCn o 函数。操作系统正是 调用这些函 dp rotl e r 数来执行针对 IP的各种 I0操作 的。 R /
ds u s sw t n e a l a d itl g n e c mmu iai n c r ,a d po ie t c n r t n l n x ln t n. i se i a x mp en me el e c o c h n i n c t a d n rvd si o cee a ay s a d e p a ai o s o
使用 V ++ . 为集成开发环境 , C 60 来进行智 能 c B
板驱动程序的开发 、 调试和测试过程。
在 W no s 00 作系统 中 内核使用一个 名 i w 0 操 d 2
2 WD 模 式 驱 动 程序 M
WD M为 W nos820/ P操作 系统 的设备 i w9/00X d 驱动程序 的设计提供 了统一的框架。WD M驱动程
1
wo d :e iedie W D ,IO n g r,I r s d vc r r, M / : P 1
wdm驱动
wdm驱动
WDM驱动是指Windows Driver Model(Windows驱动模型)驱动,它是一种用于开发Windows操作系统设备驱动程序的软件框架。
WDM驱动是为Windows 98、Windows Me和Windows 2000引入的,它提供了一种标准化的方式来编写设备驱动程序。
相比于传统的驱动开发方式,WDM驱动具有更丰富的功能和更高的灵活性。
WDM驱动在设备驱动程序的开发中提供了许多优点,包括:
1. 简化了驱动程序的开发:WDM驱动使用一套统一的API,使得驱动程序的开发更加简单和一致。
2. 可移植性:WDM驱动可以在不同的Windows操作系统版本上运行,而无需进行大量的修改。
3. 兼容性:WDM驱动允许旧的驱动程序与新的设备完全兼容,而无需进行修改。
4. 性能:WDM驱动通过使用更高级的设备驱动模型和硬件访问机制,提高了设备驱动程序的性能。
总之,WDM驱动是一种用于开发Windows设备驱动程序的软件框架,它提供了许多优势和便利,使开发者能够更轻松地开发高性能和兼容性强的驱动程序。
Windows 2000/XP下PCI总线WDM设备驱动程序的开发
( c o l fM e h nc lEn i e rn S h o c a ia g n e i g。S a d n i e s t f c n l g 。Zio 2 5 4 o h n o g Un v r iy o Te h oo y b 5 0 9,Ch n ) i a
一
来实 现对 P I C 设备 的操 作 . Wid ws0 0 X 在 n o 20 / P 操作 系统 下 , 支持 P I 线 及 其设 备 的 驱 动程 序 C总 类 型 只有 WDM ( n o ie d 1 . Wid wsDr rMo e) 因 v 此, 开发 Wid w 2 0 / P环 境 下 P I 备 的驱 n o s00 X C设
维普资讯
第 ! 卷 第 4期 ( )
20 0 6年 7月
山 东 理 工 大 学 学 报( 然 科 学 版) 自
J u n l fS a d n nv riyo c n lg ( c o r a h n o gU iest fTe h oo y S i& Te h o c)
解 各个 控制 寄存 器 的偏移 地址 和输 入输 出端 口偏 移 地址 . 后 对 各 个 寄 存 器 和 IO 端 口 进 行 操 然 /
成 为微 型计算 机 系统 的 主流总线 ] . 在 Wid wsO O X n o 2 O / P操 作 系统 下 , 了保 证 为 系统 的安 全性 和可 移 植性 , 要 对 一些 操 作 进 行 需 限制 , 如不 支持 用 户层 应 用 程 序 直 接对 系统 的硬 件资 源进行操 作 . 以 , 所 需要 开 发相 应 的驱 动程 序
基于Windows 2000的PCI接口设备驱动程序开发
<=] l 三=网 == 二 I ]
发令l 送总 篓 I 信线 } L 生 呈
2 计算 机系统 和 P I C 信令接 口卡分 析和 程序驱动
2 1 P C— ia 3 的特性及 内部结构 . M Sr 6 74 P C— ia 3 是一个支持 3 M S r 76 r 4 2个 E 1口链路、2 个双 向 H L l8 D C通道的大规模 集成电路 具有如 ¨,
第2 卷 3
下特性 : 时隙工作方式下, 支持 3 E 2个 l口、2 个多时隙链路 的收发控制; 18 支持 3 2个速率达 2M B的无 时隙 H L D C通道的收发控制 ; 支持 3 2比特 、3M z C . 接 口 3 H I 1 P 2 及升级接 口的电气特性和功能特性。 为实现信令收发功能, 关键是要完成 P C— ia 34卡工作模式设 置、 M Sr 6 r7 寄存器映射 以及申请连续 的 物理内存来完成 D A操作 , M 以下结合 P I C 设备驱动程序的特点作进一步分析。 22 C 设备驱动程序 的特点 . P I 对 P C— ia 34卡进行分析 , M S r 76 r 该芯片采用 D A工作方式 , M 采用映射主机物理 内存来实现 D A工 M 作。因此 , 要完成对 P C— ia 34 M Sr76 卡的设备驱动程序设计 , r 在计算机系统中需完成如下工作: 对 P C— ia 34 M S 6 卡物理设备的标识 ; r7 存取和修改 P C— ia 34 的 P I M S r7 6 卡 r C 配置空间 ; 获取并映射 P C— ia 34卡的配置地址寄存器 , M S r 76 r 实现对配置地址寄存器的读写 ; 申请 2 B连续的物理地址来完成 M D A操作。 M 2 3 Wi o s 00系统设备驱动程序设计 。 n w 0 d 2 23 1 Wi o s 00系统设备驱动程序的特点 .. n w 0 d 2 Wi o s 00 n w 0 设备驱动采用 Wi 2D vr M d WD 驱动模型, IO管理器给驱动程序发送各 d 2 n r e oe( M) 3 i s 由 / 种 IP管理驱动程序的行为 , R 驱动程序不 能直接操作硬件设备 , 而是通过一个 叫做 H L 硬件设备抽象 A( 层) 来访问底层设备。H L完成对各种硬件差异的屏蔽 。 A WD M驱动程序主体是一个人 口函数 Di rn y r e n y r e t 。D i r t 例程完成驱动程序对象 的初始化并返 vE r vE r 回。WD M驱动程序 的 Di rn y r e t 例程的主要工作是把各种函数指针填人驱动程序对象 。这些指针对操 vE r 作系统指明了驱动程序容器中各种子例程的位置 。它包括下面指针成员 _ : 2 ] Di rn a 指向驱动程序的清除例程 。 re l d vU o Dl rx ni > dD v e r e t s n一 A d ei 指向驱动程序 的 A d ei 函数 oA d ei 函数创建一个设备对象 vE e o c dD v e c dD v e c 并把它连接到该驱动程序的设备堆栈 中。在这个函数里 , 设备对象被创建 , 设备需要的中断 、M D A等资源 被挂接到设备对象上 , 相应地处理函数 , 中断服务例程等也被指定 。 如 Di r a o如果驱动程序使用标准的串行 IP 则必 须使用这个 函数 , re td , vSr R, 使它指向驱 动程序 的 S ro t d a 例程 。 M j Fntn a ruc o 是一个指针数组 , o i 它主要处理各种用户的 IO请求 IP / R。 Wi o s 00的虚拟地址和物理地址 的对应关系如图 2 n w 0 d 2 所示_ 。 3 j 在设备驱动程序中获取 P I C 设备寄存器的地 址以及申请物理内 存都是根据上述描述实现的。 Wi o s 00设 备驱 动程序 由设 备驱 动 n w 0 d 2 程序.y 文件和设备安装 程序. 文件组成 , ss 埘 i 件设置设备的信息和安装信息 ,s 文件 圈 2 Widw 00的虚拟地址和物理地址的对应关 系 n 坟 .s y nos 0 2 为实际编译的设备驱动程序文件 。 J
Windows 2000设备驱动程序的INF安装文件
Windows 2000设备驱动程序的INF安装文件
姚成虎;王磊
【期刊名称】《微型机与应用》
【年(卷),期】2003(022)011
【摘要】Windows 2000下设备驱动程序的自动安装过程,以及安装脚本文件INF 文件的语法结构和使用方法.
【总页数】3页(P54-56)
【作者】姚成虎;王磊
【作者单位】上海同济大学电信学院,200092;上海同济大学电信学院,200092【正文语种】中文
【中图分类】TP3
【相关文献】
1.Windows 2000中运动控制卡的ISA设备驱动程序的研究与设计 [J], 刘学鹏;王斌;晏飞;彭和平
2.基于DriverStudio的Windows 2000设备驱动程序 [J], 张京
3.细说Windows 200O设备驱动程序的INF安装文件 [J], 姚成虎;王磊
4.Windows 2000下PCI设备驱动程序开发 [J], 钱宇红
5.Windows 2000/XP下PCI总线WDM设备驱动程序的开发 [J], 张成新;赵玉刚;周海安
因版权原因,仅展示原文概要,查看原文内容请购买。
软件狗驱动程序安装
软件狗驱动程序安装说明
软件狗Windows2000平台驱动程序安装过程如下:
1、用鼠标右键单击桌面上我的电脑,从弹出菜单中选择属性,就会出现如下对话框。
点击硬件向导。
2、出现下面的向导对话框后,点击下一步。
3、选择添加/排除设备故障,点击下一步。
4、Windows2000作新硬件检测。
5、选择添加新设备,点击下一步,如下图所示。
6、不要让Windows2000搜索新硬件。
请选择“否,我想从列表选择硬件。
”,然后,单击下一步。
7、硬件类型请选择其它类型。
单击下一步。
8、出现选择设备驱动程序的对话框时,选择从“磁盘安装”。
9、在“厂商文件复制来源”编辑框处,键入驱动程序所在的目录,或者通过单击旁边的浏览按钮选择驱动程序所在的目录。
然后单击确定按钮。
10、选择SoftDog,然后单击下一步。
11、出现开始安装画面,单击下一步。
12、Windows2000会进行文件复制和安装的工作,稍等片刻,出现安装完成提示。
这时选择完成按钮,软件狗的驱动程序就安装完成了。
软件狗驱动程序安装
软件狗驱动程序安装说明软件狗Windows2000平台驱动程序安装过程如下:1、用鼠标右键单击桌面上我的电脑,从弹出菜单中选择属性,就会出现如下对话框。
点击硬件向导。
2、出现下面的向导对话框后,点击下一步。
3、选择添加/排除设备故障,点击下一步。
4、Windows2000作新硬件检测。
5、选择添加新设备,点击下一步,如下图所示。
6、不要让Windows2000搜索新硬件。
请选择“否,我想从列表选择硬件。
”,然后,单击下一步。
7、硬件类型请选择其它类型。
单击下一步。
8、出现选择设备驱动程序的对话框时,选择从“磁盘安装”。
9、在“厂商文件复制来源”编辑框处,键入驱动程序所在的目录,或者通过单击旁边的浏览按钮选择驱动程序所在的目录。
然后单击确定按钮。
10、选择SoftDog,然后单击下一步。
11、出现开始安装画面,单击下一步。
12、Windows2000会进行文件复制和安装的工作,稍等片刻,出现安装完成提示。
这时选择完成按钮,软件狗的驱动程序就安装完成了。
文- 汉语汉字编辑词条文,wen,从玄从爻。
天地万物的信息产生出来的现象、纹路、轨迹,描绘出了阴阳二气在事物中的运行轨迹和原理。
故文即为符。
上古之时,符文一体。
古者伏羲氏之王天下也,始画八卦,造书契,以代结绳(爻)之政,由是文籍生焉。
--《尚书序》依类象形,故谓之文。
其后形声相益,即谓之字。
--《说文》序》仓颉造书,形立谓之文,声具谓之字。
--《古今通论》(1) 象形。
甲骨文此字象纹理纵横交错形。
"文"是汉字的一个部首。
本义:花纹;纹理。
(2) 同本义[figure;veins]文,英语念为:text、artic le等,从字面意思上就可以理解为文章、文字,与古今中外的各个文学著作中出现的各种文字字形密不可分。
古有甲骨文、金文、小篆等,今有宋体、楷体等,都在这一方面突出了"文"的重要性。
古今中外,人们对于"文"都有自己不同的认知,从大的方面来讲,它可以用于表示一个民族的文化历史,从小的方面来说它可用于用于表示单独的一个"文"字,可用于表示一段话,也可用于人物的姓氏。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Windows2000设备驱动程序引言:因为工作关系,我经常涉及PC机与外围设备接口的工作,从PC机这方面要做的工作看来,主要是通过接口处理外围设备的中断,通过I/O 端口或内存地址与外设互相传递数据。
从计算机原理的角度看,所要达到的目的很简单,那么如何编写程序完成上述功能呢?当前国内流行的PC操作系统有三种:DOS,Win95/98系列,WindowsNT。
DOS是单用户、单任务操作系统,因为PC机硬件处理速度持续提升,基于单用户、单任务的操作系统越来越不能充分发挥硬件的功能,现在只应用于一些老式PC及其它个别场合,有逐渐被淘汰的趋势;Win95/98系列和WindowsNT属于多任务操作系统,不论从其原理还是界面上看,这两种操作系统都比DOS有着无可比拟的优越性,这两种操作系统虽然在界面和操作上及其相似,但其内部实现的诸多方面有很多区别,有些区别是本质上的。
Win95/98设计目标是针对一般家庭用户,安全性及可靠性存有很多薄弱环节,就可靠性来说,Win95/98系列不能很好的防止多任务环境中某个进程的非法操作导致系统中其它程序甚至整个系统的崩溃,而WindowsNT在这方面及其它诸多方面设计的相当严谨。
这两种操作系统是Microsoft公司同一时期的产品,但针对不同的使用群,所以在一些重要场合及生产实践中应该选择WindowsNT作为计算机的操作系统,此外,从发展趋势来看,WindowsNT已经成为定型产品,具有相对稳定性。
在不同操作系统下编写驱动程序是有很大区别的,在DOS平台上,应用程序和设备驱动程序之间没有标准的接口,它们在外部表现为一个扩展名为EXE的文件,驱动程序的作用被柔和在应用程序中,这样,应用程序为了使用不同厂商的同一类设备,必须了解这些设备在接口上具体的硬件实现,同时,对于一个特定型号的硬件产品,所有支持它的应用软件中对于控制整个设备动作的这部分代码,可能被多次重写。
这种情况不适合硬件及应用软件的飞速发展。
Windows系统在这方面,实行了根本性改进,把控制设备动作的这部分代码独立出来,提出了设备驱动程序的概念,驱动程序是应用程序和硬件设备之间的一个桥梁,应用程序与驱动程序之间有明确的接口,应用程序通过与驱动程序交换信息,达到控制外设的目的。
接口定义的操作是面向设备的,这就是说,在应用程序的设计中,并不用关心对外设操作的具体硬件实现,仅仅对驱动程序发出一系列指令既可;驱动程序接受来自上层应用程序的指示,具体操纵实际硬件,完成用户功能。
具体实现上,Win95/98系列与WindowsNT又有所区别,WindowsNT是严格按照上述思路设计的;而Win95/98系列不那么严格,其支持上述思路,但同时应用程序也能够绕过驱动程序直接访问实际物理I/O,这样做,增加程序设计的灵活性,但同时,对系统可靠性造成一定隐患。
这也正是Win95/98系列可靠性低于WinNT的原因之一。
WindowsNT设备驱动程序的组成原理WindowsNT操作系统结构分为用户模式和内核模式,用户模式下的编程为应用程序的设计,而开发设备驱动程序,则属于内核模式下的编程,内核模式组件包括NTExecutive(ExXxx),内核(KeXxx),硬件抽象层(HalXxx)。
其层次如图2-1所示,其中NTExecutive包括几个独立的软件组件,它们是系统服务接口(ZwXxx),对象管理器(ObXxx),配置管理器,进程管理器(PsXxx),安全监视器(SeXxx),虚拟空间管理器(MemXxx),本地进程调用,I/O管理器(IoXxx)。
内核模式的系统服务并不是全部公开的,而是提供了一系列开发设备驱动程序需要的函数(上文括号内为函数形式,函数手册参见2Kernel-ModeDrivers-Reference章节),换言之,这些函数功能是所有内核模式的系统服务功能的子集。
驱动程序由一系列相对独立的函数组成,由I/O管理器根据需要调用这些函数,对于一个需要处理中断的最简单的驱动程序也需要由以下几个函数构成:1.DriverEntry()运行于PASSIVE_LEVEL驱动程序入口点,当驱动程序被手动或自动装入系统后,驱动程序从这点开始执行,主要用于定位硬件资源,建立指向其它驱动程序函数的指针等其它初始化工作。
2.XxUnload()运行于PASSIVE_LEVEL用于驱动程序从系统卸出之前,释放由驱动程序占用的所有系统资源。
3.XxIsr()运行于DIRQL中断服务程序。
4.XxDpcForIsr()运行于DISPATCH_LEVEL中断服务程序后处理程序,以排队方执行不太关键代码的执行,因为排队机制及优先级,不会造成代码拥塞从而提升中断服务程序的响应并且提升系统总体I/O吞吐率。
5.XxOpen()运行于PASSIVE_LEVEL处理应用程序Win32函数CreateFile()请求。
6.XxClose()运行于PASSIVE_LEVEL处理应用程序Win32函数CloseHandle()请求。
7.XxDispatch()运行于PASSIVE_LEVEL处理应用程序Win32函数DeviceIoControl()请求,通过一系列自定义命令,驱动程序与应用程序交换特定的信息。
WindowsNT使用一个抽象化的CPU优先级方案,IRQL代表中断请求级,任一时刻CPU总处在某一级上,这个数越大,表示当前的任务重要性越大,如表2-1所示,从上至下IRQL越来越小。
所有上述驱动程序的函数及内核模式函数都必须运行于各自的IRQL级上,如果违反这个调用规定,会造成系统崩溃。
例如,中断服务程序(XxIsr)运行于DIRQL及上,那幺在编写中断服务程序时,只能调用允许在这个级运行的内核模式函数(并不是所有内核模式函数都能运行于DIRQL级)。
至于每个内核模式函数运行级别的说明,详见2Kernel-ModeDrivers-Reference章节。
WindowsNT是一多任务系统,很多设备的驱动程序同时存有系统中,这样各个设备所占用的资源(中断,I/O及RAM地址空间)很有可能冲突,如果设备驱动程序在运行之前不实行‘探测’而使用自己硬件设备的资源,有可能和系统内其它设备占用的资源冲突,后果不堪设想。
WindowsNT通过注册表管理硬件资源的占用信息,作为内核模式信任的组件,驱动程序使用硬件资源之前必须遵循‘查询-申请-使用-释放’的原则WindowsNT设备驱动程序的编写步骤与实例现以一实际例子简要说明设备驱动程序的开发步骤,本例以CINRAD天气雷达测试卡实际应用为原型,加以简化、抽象。
第一步,了解被控设备的接口情况。
本例为一ISA卡,占用PC机9号中断,I/O地址360H及RAM地址D0228H分别一个字空间。
第二步,确定驱动程序的功能。
驱动程序每当9号中断达到时,检查运行标志变量RunFlag(为一BOOL变量),如果等于TRUE,中断累积计数器counter(为一unsignedshort变量)增一,把这个值写入RAM地址D0228H,再从这个地址读出,如果读出值等于写入值,把这个值写入I/O地址360H,这个地址的内容会驱动板卡上的LED显示,把写入值显示出来;如果读出值不等于写入值,设置运行标志变量FALSE。
如果运行标志变量等于FALSE,什幺也不做,返回。
第三步,定义驱动程序与应用程序的软件接口。
本例定义两个接口命令:IOCTL_IOCardA_START:应用程序设置驱动程序内部的运行标志变量等于TRUE。
IOCTL_IOCardA_READ:应用程序查询驱动程序内部的中断累积计数器的值。
第四步,画流程图。
这里列举本例实现的几个主要流程图,(图略)。
系统传给驱动程序入口函数系统定义的‘设备驱动对象’DrObj,通过初始化这个对象的一些成员变量,把驱动程序其它函数与这个对象联系起来。
ISA卡为非即插即用设备,事先把资源占用信息手工添加注册表如下:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\IOCardA\ parameters"IRQ"=dword:00000009"IOSPAN"=dword:00000004"IOAdd"=dword:00000360"RAMAdd"=dword:000d0228"RAMSPAN"=dword:00000002其中IOCardA以下各子键及其值为自定义,设备驱动程序利用相对应函数检索出这些值。
(3)每个设备驱动程序能够创建若干系统定义的‘设备对象’,本例根据需要只创建了一个‘设备对象’Dev。
‘设备对象’其中一个成员变量为指向一非分页的物理内存块DeviceExtension,这块内存大小及内容为用户自定义,因为Dev或DeviceExtension对象会被系统传给驱动程序的其它函数,这样驱动程序各函数通过访问这块内存区,实际上达到互相传递信息的功能。
本例在这里存储设备硬件资源信息及RunFlag和中断计数器counter,这些数值在DriverEntry()初始化后,供驱动程序的其它函数使用。
图3-2为中断服务程序IOCardAIsr()流程图。
操作系统接受中断,连同DeviceExtension等参数传给中断服务程序,中断服务程序利用这些参数,实现要求功能。
图3-3为IOCardADispatch()流程图,这个函数用于处理来自上层应用程序的命令。
上层应用程序通过以下程序段设置驱动程序中RunFlag 值为TRUE,从而启动中断服务程序开始计数。
BOOLcmd=TRUE;hTest=CreateFile(...);//打开设备DeviceIoControl(hTest,//设备句柄IOCTL_IOCardA_START,//命令&cmd,sizeof(BOOL),//输入缓冲区地址及大小NULL,0,&c,NULL);CloseHandle(hTest);//关闭设备上层应用程序通过以下程序段查询当前的中断计数器的值并存于变量w中。
unsignedshortw;hTest=CreateFile(...);DeviceIoControl(hTest,IOCTL_IOCardA_READ,//命令NULL,0,&w,sizeof(unsignedshort),//输出缓冲区地址及大小&c,NULL);CloseHandle(hTest);其中DeviceIoControl()执行后,操作系统调用IOCardADispatch()函数,如流程图所示,这个函数内部通过一个开关语句,根据命令执行相对应的分支。