sharc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2013-05-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1575回复:4

请问 ndis.h 中一定义的意思?

楼主#
更多 发布于:2002-08-04 21:34
#define NDIS_STRING_CONST(x) {sizeof(L##x)-2, sizeof(L##x), L##x}  ,看不懂,各位大虾指点一下,多谢!

guardee
驱动巨牛
驱动巨牛
  • 注册日期2002-11-08
  • 最后登录2010-05-29
  • 粉丝2
  • 关注1
  • 积分2分
  • 威望34点
  • 贡献值0点
  • 好评度6点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-08-05 09:30
啊!因为这个是使用在unicode_string里的
对于uincode_string的定义你去看看就知道了!##是原样沾贴的意思啊!
SharpShooter
驱动小牛
驱动小牛
  • 注册日期2002-04-07
  • 最后登录2013-07-05
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-08-05 09:46
这玩意儿没用过,不过这些东西嘛,看一看,猜一猜,大不了再试一试不就知道了,抱歉我没有试,不过估计我猜的不会错,错了你找我,呵呵。

举个例子吧:

NDIS_STRING  UniString;
UniString = NDIS_STRING_CONST(\"string\");

上面两行代码就相当于:

NDIS_STRING  UniString = {12, 14, L\"string\"};

也相当于
UniString.Length = sizeof(L\"string\") - 2;
UniString.MaximumLength = sizeof(L\"string\");
wcscpy(UniString.Buffer,L\"string\");
写驱动不如买足彩!!
ufo_online
驱动牛犊
驱动牛犊
  • 注册日期2002-04-26
  • 最后登录2004-03-26
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-08-05 13:49
  guardee 说得对,看uincode_string的定义:
typedef struct _UNICODE_STRING {
    USHORT Length;
    USHORT MaximumLength;
#ifdef MIDL_PASS
    [size_is(MaximumLength / 2), length_is((Length) / 2) ] USHORT * Buffer;
#else // MIDL_PASS
    PWSTR  Buffer;
#endif // MIDL_PASS
} UNICODE_STRING;

#define NDIS_STRING_CONST(x) {sizeof(L##x)-2, sizeof(L##x), L##x} 定义了一个struct。
sharc2002
驱动牛犊
驱动牛犊
  • 注册日期2002-04-07
  • 最后登录2013-05-07
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望32点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-08-05 22:48
谢谢各位如此详细的指点!我把我的分都给了!!

[编辑 -  8/6/02 by  sharc2002]
游客

返回顶部