basalloy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2006-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1829回复:10

如何同时编译ntddk.h和ndis.h文件?

楼主#
更多 发布于:2002-05-22 08:49
大家都知道ddk例子里由一个例子叫packet,它是ndis 层驱动程序,所以头文件要包括ndis.h.但要与应用层交互,必须调用ntddk.h中的函数,如iodevicecontral,所以又包括了ntddk.h.我想在passthru中也调用这些函数,就必须也包含ntddk.h文件,但却发现同时编译ntddk.h和ndis.h会出错,因为在ndis.h中重复定义了许多ntddk.h中的函数,我于是又回头看packet例子是如何做得,也许添加了一些宏定义?但我没找到这样的语句,请问谁能告诉我该怎么做?

最新喜欢:

moqingsongmoqing...
fracker
驱动太牛
驱动太牛
  • 注册日期2001-06-28
  • 最后登录2021-03-30
  • 粉丝0
  • 关注0
  • 积分219分
  • 威望81点
  • 贡献值0点
  • 好评度23点
  • 原创分0分
  • 专家分1分
  • 社区居民
沙发#
发布于:2002-05-22 10:08
分成两个源文件吧,我以前也碰到过,就是这么干的。
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-05-22 10:51
大家都知道ddk例子里由一个例子叫packet,它是ndis 层驱动程序,所以头文件要包括ndis.h.但要与应用层交互,必须调用ntddk.h中的函数,如iodevicecontral,所以又包括了ntddk.h.我想在passthru中也调用这些函数,就必须也包含ntddk.h文件,但却发现同时编译ntddk.h和ndis.h会出错,因为在ndis.h中重复定义了许多ntddk.h中的函数,我于是又回头看packet例子是如何做得,也许添加了一些宏定义?但我没找到这样的语句,请问谁能告诉我该怎么做?

这个问题胡斑竹过去说过许多次了!加个WDM的宏!看我的代码:

*++

Copyright (c) 2001  X-digital.com


   xxxxxxx           xxxxxxx
    xxxxxxx         xxxxxxx
 xxxxxx       xxxxxx
  xxxxxx     xxxxxx
   xxxxxx   xxxxxx
xxxxxx xxxxxx
 xxxxxxxxxxx
  xxxxxxxxx
   xxxxxxx    -digital.com
  xxxxxxxxx
 xxxxxxxxxxx
xxxxxx xxxxxx
xxxxxx   xxxxxx
  xxxxxx     xxxxxx
 xxxxxx       xxxxxx
xxxxxx         xxxxxx
   xxxxxxx           xxxxxxx
  xxxxxxx             xxxxxxx

Module Name:
 
X_TsNDI_inc.h

Abstract:

X-digital & Topdigital\'s Network Development Interface Platform.

Author:

.X.T.I.M. (topdigital@hotmail.com)

Environment:


Revision History:


--*/

#if !defined(__X_DIGITAL_COM_XTIM_FIREWALL_KENNEL_MODEL_TsNDI_MINC_200101081558__INCLUDED__)
#define __X_DIGITAL_COM_XTIM_FIREWALL_KENNEL_MODEL_TsNDI_MINC_200101081558__INCLUDED__

/*+++++++++++++

   Warning!!!
        This SrcCode is Power by .X.T.I.M.(topdigital@hotmail.com),
It\'s platform for any security system,It working in the
kennel model for the win2k server family systems only.

And this source is a private code!

+++++++++++++*/


////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////////////////
////////////////////////////////Start Define////////////////////////////////////////////////





////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//Special Define////////////////////////////////////////////////////////////////

//////////////////////////
//////// NDIS_WDM ////////
#ifndef ___X_NDIS_WDM___
#define ___X_NDIS_WDM___

#define NDIS_WDM 1 //Important Macro!!Set The NDIS.h & WDM.h\'s Capbilities

#endif//#define ___X_NDIS_WDM___
//////// NDIS_WDM ////////
//////////////////////////

//Special Define////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////



////////////////////////////////////////////////////////////////////////////////
////////////////////////////////////////////////////////////////////////////////
//System Includes///////////////////////////////////////////////////////////////

#ifndef ___X_MINC_SYSINC___
#define ___X_MINC_SYSINC___

#include <WDM.h>
#include <ddk\\ndis.h>
#include <ddk\\ntddk.h>  
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
zhang_jiaqi
驱动小牛
驱动小牛
  • 注册日期2002-05-17
  • 最后登录2006-05-25
  • 粉丝0
  • 关注0
  • 积分164分
  • 威望22点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-05-22 11:00
分成两个源文件吧,我以前也碰到过,就是这么干的。
  老大!介绍一下你的经验吧!我计划把passthru改成有简单防火墙功能的东东,实现细节自己来,请讲讲编程的大致思路吧!
我 昨天看见sirroom的帖子,“关于ndis.h\",好深奥,在vc 里改,这些个头文件怎么处理?再问:能和应用层联系起来吗?不用那些INF文件安装,直接生成一个工程?
毛主席语录:看看它的过去和现在,就知道它的将来。
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-05-22 11:28
现在才来学VC然后接着学DDK来做包过滤,做毕业设计??这样太紧张了吧??时间这么紧你来的及么??
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
bingjie
驱动小牛
驱动小牛
  • 注册日期2001-08-15
  • 最后登录2007-11-29
  • 粉丝0
  • 关注0
  • 积分36分
  • 威望5点
  • 贡献值0点
  • 好评度3点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2002-05-22 18:32
看看Ndis.h就知道了
定义宏 NDIS_WDM = 1是要Ndis.h 包含WDM.h,否则它包含ntddk.h
HuYuguang
论坛版主
论坛版主
  • 注册日期2001-04-25
  • 最后登录2013-04-29
  • 粉丝3
  • 关注1
  • 积分92分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分1分
  • 专家分0分
6楼#
发布于:2002-05-22 19:07

[quote]大家都知道ddk例子里由一个例子叫packet,它是ndis 层驱动程序,所以头文件要包括ndis.h.但要与应用层交互,必须调用ntddk.h中的函数,如iodevicecontral,所以又包括了ntddk.h.我想在passthru中也调用这些函数,就必须也包含ntddk.h文件,但却发现同时编译ntddk.h和ndis.h会出错,因为在ndis.h中重复定义了许多ntddk.h中的函数,我于是又回头看packet例子是如何做得,也许添加了一些宏定义?但我没找到这样的语句,请问谁能告诉我该怎么做?

这个问题胡斑竹过去说过许多次了!加个WDM的宏!看我的代码:

*++

老兄,我强烈的感谢,我还以为我又要重复第n+1遍呢。
你应该建议他们多看看头文件,加强一点c语言的基本功。

如果有空,做一点linux的库函数移植(到w2k)下对
c语言的学习会有帮助。

不再回忆从前,我已经生活在幸福当中。
zhang_jiaqi
驱动小牛
驱动小牛
  • 注册日期2002-05-17
  • 最后登录2006-05-25
  • 粉丝0
  • 关注0
  • 积分164分
  • 威望22点
  • 贡献值0点
  • 好评度5点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2002-05-22 19:48
现在才来学VC然后接着学DDK来做包过滤,做毕业设计??这样太紧张了吧??时间这么紧你来的及么??

vc倒是没有大问题,都看了一个多月了,
我只是现在搞不清ddk,passthru,vc间的联系。
我如果只在passthru中加入我的一点代码,在按inf的描述装一下,直接在虚拟驱动层实现一点过滤功能,不只可行吗?给个建议吧!
毛主席语录:看看它的过去和现在,就知道它的将来。
.X.T.I.M.
驱动大牛
驱动大牛
  • 注册日期2001-09-22
  • 最后登录2021-08-25
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2002-05-22 22:11

[quote][quote]大家都知道ddk例子里由一个例子叫packet,它是ndis 层驱动程序,所以头文件要包括ndis.h.但要与应用层交互,必须调用ntddk.h中的函数,如iodevicecontral,所以又包括了ntddk.h.我想在passthru中也调用这些函数,就必须也包含ntddk.h文件,但却发现同时编译ntddk.h和ndis.h会出错,因为在ndis.h中重复定义了许多ntddk.h中的函数,我于是又回头看packet例子是如何做得,也许添加了一些宏定义?但我没找到这样的语句,请问谁能告诉我该怎么做?

这个问题胡斑竹过去说过许多次了!加个WDM的宏!看我的代码:

*++

老兄,我强烈的感谢,我还以为我又要重复第n+1遍呢。
你应该建议他们多看看头文件,加强一点c语言的基本功。

如果有空,做一点linux的库函数移植(到w2k)下对
c语言的学习会有帮助。

 [/quote]
晕~~~这些宏的定义都是去年你教我的!不过老大说的也是,我发现最近的菜鸟基本上都是C/CPP都没学好就来搞DDK的,这样走的弯路太多!比较集中的问题是指针和内存的关系还没理解,预处理根本不知道是什么!编译错误消息当作没看见!问的问题不知所谓~~碰到问题不加思考~~最近的问题比起过去的质量差多了!
<IMG src="http://www.microsoft.com/traincert/images/logos/mcp.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcdba.gif" border=0><br> <IMG src="http://www.microsoft.com/traincert/images/logos/mcse.gif" border=0> <IMG src="http://www.microsoft.com/traincert/images/logos/mcsd.gif" border=0>
basalloy
驱动牛犊
驱动牛犊
  • 注册日期2002-03-20
  • 最后登录2006-01-09
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2002-05-23 18:00
各位批评的是,我一定痛改前非!
sirroom
驱动大牛
驱动大牛
  • 注册日期2001-07-30
  • 最后登录2018-05-29
  • 粉丝0
  • 关注0
  • 积分6分
  • 威望11点
  • 贡献值1点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2002-05-23 18:40
直接include <ndis.h>,据情况ndis.h里自然会加上ntddk.h或是wdm.h
   不过,偶也有个问题,。
111
游客

返回顶部