分享
 
 
 

CE下的驱动程序和服务开发笔记,体验及总结

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

为了完成CE作业又来看CE下的驱动程序设计了,后悔上那堂课时没认真听......

还是先把知识复习一下:

1 在UNIX & Windows 9x系列中驱动程序和操作系统是绑定在一起的,在核心态里运行。但在CE里,大部分的驱动程序只是一个DLL文件,在用户态下运行。

2 大部分的驱动程序都是用来控制硬件的,但某些硬件是不需要驱动的,如:CPU,Memory......也有一些虚拟设备的驱动 ,如:文件系统驱动,RAM disk

3 CE提供逻辑中断SYSINTRs,中断仅被当作用户态下的一个线程(IST)

l

4 硬件的OEMs并不提供该硬件在CE上的驱动,而只是一个硬件规约(Hardware Specification)

驱动的分类:

1 Native

2 Bus

3 Stream interface

一,Native驱动

也叫做Built-in驱动,是硬件所必须的,由OEM设计硬件时所完成的。如:键盘,触摸屏......

也许不支持一般设备驱动接口 。当OS的新版本出来时,一般Native驱动只需做很少的改动。

二,Bus驱动

管理系统总线,如PCI总线;PCMICA和CompactFlash也被当作总线。负责询问总线上的硬件来决定什么硬件被安装和正在分配资源。也会要求设备管理器(Device Manager)来为线上硬件装载合适的驱动。

三,Stream interface驱动

一会在下面会详细介绍这个

驱动的种类:

l

Audio Drivers

l

Battery Drivers

l

Block Drivers

l

Bluetooth HCI Transport Driver

l

Direct3D Device Driver Interface

l

DirectDraw Display Drivers

l

Display Drivers

l

DVD-Video Renderer

l

IEEE 1394 Drivers

l

Keyboard Drivers

l

Notification LED Drivers

l

Parallel Port Drivers

l

PC Card Drivers

l

Printer Drivers

l

Serial Port Drivers

l

Smart Card Drivers

l

Stream Interface Drivers

l

Touch Screen Drivers

l

USB Drivers

驱动的装载过程:

1 大部分的驱动都是由系统启动时的设备管理进程(Device.exe)来完成装载的。

2 而一些Buit-in驱动由GWES.exe来装载。这些驱动包括显示驱动(DDI.dll),键盘驱动和触摸屏(鼠标)驱动

3 Device.exe会查看注册表里的[HKEY_LOCAL_MACHINE]\Drivers中一个被称为RootKey的字符串,通常是Builtin。这个RootKey里的驱动列表就是设备管理器必须初始化的。

[帖图1]

4 装载驱动的DLL, 为它创建一个ActiveKey(在[HKEY_LOCAL_MACHINE\Drivers\Active 下),并将这个DLL作为设备驱动注册到系统中。

3.

[帖图2]

5 也可以由应用程序来手工装载驱动,如ActiveDeviceEx函数;另一个老的装载驱动的方法是用:RegisterDevice和 DeregisterDevice。

Stream Interface

一个流式接口驱动是指一个驱动把流式接口函数暴露出来,而不考虑驱动所控制的设备类型。典型的流式接口驱动:文件系统驱动(iostream,fstream),COM,LPT。。。。。

直接使用win32文件系统API:

hSer = CreateFile(TEXT(“COM1:”), GENERIC_READ, 0, NULL, OPEN_EXSITING, 0, NULL);

rc = ReadFile(hSer, &ch, 1, &cBytes, NULL);

TransmitCommChar(hSer, ‘a’);

CloseHandle(hSer);

创建一个流式驱动的过程:

1 写一个DLL,把流式接口的函数都expose出来

2 创建设备驱动

3 配置注册表

XXX_Close

Closes the device context identified by hOpenContext.

XXX_Deinit

Called by the Device Manager to de-initialize a device.

XXX_Init

Called by the Device Manager to initialize a device.

XXX_IOControl

Sends a command to a device.

XXX_Open

Opens a device for reading, writing, or both. An application indirectly invokes this function when it calls

CreateFile to open special device file names.

XXX_PowerDown

Ends power to the device. It is useful only with devices that can be shut off under software control.

XXX_PowerUp

Restores power to a device.

XXX_Read

Reads data from the device identified by the open context.

XXX_Seek

Moves the data pointer in the device.

XXX_Write

Writes data to the device.

注册表配置:

[HKEY_LOCAL_MACHINE\Drivers\BuiltIn\Sample]

"Dll" = "mydriver.Dll"

"Prefix" = "DEM"

"Index" = dword:1

"Order" = dword:0

"FriendlyName" = "Demo Driver"

"Ioctl" = dword:0

CE下的服务

在CE4.0之前是没有服务可用的,4.0之后服务管理被加入进来了。

一个CE服务也是一个DLL,结构和一个流式驱动程序的差不多:有3字符前缀,有10个进入口函数

未完待续........

最后一次更新:2005年1月1日19:29:47

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有