2128|2

2

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

解释一下驱动头文件 [复制链接]

#pragma once

#ifdef __cplusplus
extern "C"
{
#endif
#include
#ifdef __cplusplus
}
#endif

#define PAGEDCODE code_seg("PAGE")
#define LOCKEDCODE code_seg()
#define INITCODE code_seg("INIT")

#define PAGEDDATA data_seg("PAGE")
#define LOCKEDDATA data_seg()
#define INITDATA data_seg("INIT")

#define arraysize(p) (sizeof(p)/sizeof((p)[0]))

typedef struct _DEVICE_EXTENSION {
PDEVICE_OBJECT pDevice;
UNICODE_STRING ustrDeviceName; UNICODE_STRING ustrSymLinkName;
} DEVICE_EXTENSION, *PDEVICE_EXTENSION;


NTSTATUS CreateDevice (IN PDRIVER_OBJECT pDriverObject);
VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject);
NTSTATUS HelloDDKDispatchRoutine(IN PDEVICE_OBJECT pDevObj,
IN PIRP pIrp);
请帮忙详细解释以上代码,例如code_seg(),data_seg()等函数含义,为何在c++中没见过,VOID HelloDDKUnload (IN PDRIVER_OBJECT pDriverObject)其中的IN PDRIVER_OBJECT 又是什么意思,使用到了什么语法结构?其中的PAGE,INIT又是什么意思?sizeof((p)[0])中的(p)为何要加括号?
小弟新学,见笑了。

最新回复

至于sizeof((p)[0])中的(p)为何要加括号? 应当是考虑代码的“上下文”的原因吧? 在这里p是变量的名字,p[0]自然是第一个元素的大小了。 比如 [code] 在使用 [code] 时 ,会得到错误的结果!   详情 回复 发表于 2009-2-27 16:39
点赞 关注

回复
举报

1

帖子

0

TA的资源

禁止访问

沙发
 
提示: 作者被禁止或删除 内容自动屏蔽
 
 

回复

1

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
至于sizeof((p)[0])中的(p)为何要加括号?
应当是考虑代码的“上下文”的原因吧?
在这里p是变量的名字,p[0]自然是第一个元素的大小了。

比如
[code]

在使用

[code]

时 ,会得到错误的结果!
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表