zxwqd
驱动牛犊
驱动牛犊
  • 注册日期2004-09-20
  • 最后登录2005-06-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1798回复:4

《undocument windows nt》配套源码undocnt.h中的宏MYDRIVERENTRY里面的##是什么意思?

楼主#
更多 发布于:2004-10-25 20:49
《undocument windows nt》配套源码undocnt.h中的宏MYDRIVERENTRY里面的##是什么意思?我只知道运算符##是把两个记号连接在一起,但在这段代码中“##DeviceID”和“ntStatus=##DriverSpecificInit”如何解释?谢谢!!

#define MYDRIVERENTRY(DriverName, DeviceID, DriverSpecificInit) \
PDEVICE_OBJECT         deviceObject        = NULL; \
NTSTATUS               ntStatus; \  
WCHAR                  deviceNameBuffer[]  = L"\\Device\\"##DriverName; \
UNICODE_STRING         deviceNameUnicodeString; \
WCHAR                  deviceLinkBuffer[]  = L"\\DosDevices\\"##DriverName; \
UNICODE_STRING         deviceLinkUnicodeString; \
\
RtlInitUnicodeString (&deviceNameUnicodeString, deviceNameBuffer); \
ntStatus = IoCreateDevice (DriverObject, \
  0, \
  &deviceNameUnicodeString, \
  ##DeviceID, \
  0, \
  FALSE, \
  &deviceObject \
  ); \
\
if (NT_SUCCESS(ntStatus)) { \
   RtlInitUnicodeString (&deviceLinkUnicodeString, deviceLinkBuffer);\
   ntStatus = IoCreateSymbolicLink (&deviceLinkUnicodeString, \
   &deviceNameUnicodeString);\
   if (!NT_SUCCESS(ntStatus)) {\
       IoDeleteDevice (deviceObject); \
       return ntStatus; \
   } \
\
   ntStatus=##DriverSpecificInit; \
\
   if (!NT_SUCCESS(ntStatus)) {\
       IoDeleteDevice (deviceObject); \
       IoDeleteSymbolicLink(&deviceLinkUnicodeString); \
       return ntStatus; \
   } \
\
\
   DriverObject->MajorFunction[IRP_MJ_CREATE]         = \
   DriverObject->MajorFunction[IRP_MJ_CLOSE]          = \
   DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DriverDispatch; \
   DriverObject->DriverUnload                         = DriverUnload; \
   return STATUS_SUCCESS; \
} else { \
   return ntStatus; \
};
tiamo
VIP专家组
VIP专家组
  • 注册日期2002-02-26
  • 最后登录2018-01-09
  • 粉丝17
  • 关注4
  • 积分50分
  • 威望142点
  • 贡献值1点
  • 好评度40点
  • 原创分2分
  • 专家分15分
  • 原创先锋奖
  • 社区居民
沙发#
发布于:2004-10-29 00:02
查msnd啊....

##这个东西是用来连接两个符号的...
qwdrv
驱动大牛
驱动大牛
  • 注册日期2004-03-19
  • 最后登录2005-12-15
  • 粉丝0
  • 关注0
  • 积分8分
  • 威望2点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-10-29 08:08
punk
驱动小牛
驱动小牛
  • 注册日期2001-04-07
  • 最后登录2018-06-01
  • 粉丝0
  • 关注0
  • 积分621分
  • 威望164点
  • 贡献值0点
  • 好评度60点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-11-01 09:24


"undocument windows nt"这本书有没有电子版阿? :)
不停学习
zxwqd
驱动牛犊
驱动牛犊
  • 注册日期2004-09-20
  • 最后登录2005-06-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-11-02 08:49
本网站的“下载中心”的“参考书籍”中就有,你去看看吧。
游客

返回顶部