首页
社区
课程
招聘
[求助]初学驱动
发表于: 2009-8-6 17:33 6052

[求助]初学驱动

2009-8-6 17:33
6052
最近开始看那本《寒江独钓》,遇到几个弱弱的问题
问题1:
在第四章那个键盘过滤的例子中有一段:

PC2P_DEV_EXT    devExt;
……
……
devExt = (PC2P_DEV_EXT)(pFilterDeviceObject->DeviceExtension);

上面括号中的红体字部分是什么意思呢?上面那一句PC2P_DEV_EXT    devExt;是把devExt定义为一个PC2P_DEV_EXT类型的数据结构,那么那个括号中写上PC2P_DEV_EXT有什么用?

问题2:
g_p2c_old = (void *)P2C_MAKELONG(idt_addr->offset_low,idt_addr->offset_high);
这一句中红体字部分是什么意思呢?大学时学的是清华出版社谭浩强的那本C语言程序设计,记得 * 号是定义指针的意思吧……翻了一遍书也没找到(void *)是什么意思……

貌似还见过(temp **)……这类n个星号的语句……

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (8)
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
2
强制类型转换。C的基本知识啊~
2009-8-6 17:38
0
雪    币: 179
活跃值: (26)
能力值: ( LV7,RANK:100 )
在线值:
发帖
回帖
粉丝
3
楼主大学学的东西忘的差不多啦,赶快补补,要不忘完了。
2009-8-6 18:12
0
雪    币: 7651
活跃值: (523)
能力值: ( LV9,RANK:610 )
在线值:
发帖
回帖
粉丝
4
我现在强烈膜拜那些95后的小同学,比如IceLight的作者ggy~
2009-8-6 18:56
0
雪    币: 243
活跃值: (10)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
5
唉~~没办法,大学=大概学一学……
2009-8-6 20:30
0
雪    币: 204
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
2009-8-7 12:41
0
雪    币: 68
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
   顶一下,说得太精辟了,呵呵~~
2009-8-7 14:27
0
雪    币: 636
活跃值: (174)
能力值: ( LV9,RANK:260 )
在线值:
发帖
回帖
粉丝
8
2009-8-7 16:09
0
雪    币: 203
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
devExt = (PC2P_DEV_EXT)(pFilterDeviceObject->DeviceExtension);
PC2P_DEV_EXT是自定义类型,用于存储设备对象自定义数据的。每个设备一份。
创建设备时会开辟一段内存附在设备对象尾部,大小为sizeof(PC2P_DEV_EXT)。这片空间可以放设备对象专属的数据

g_p2c_old = (void *)P2C_MAKELONG(idt_addr->offset_low,idt_addr->offset_high);
(void *)强制转换为指向无类型的指针
2009-8-7 18:33
0
游客
登录 | 注册 方可回帖
返回
//