阅读:1829回复:10
如何同时编译ntddk.h和ndis.h文件?
大家都知道ddk例子里由一个例子叫packet,它是ndis 层驱动程序,所以头文件要包括ndis.h.但要与应用层交互,必须调用ntddk.h中的函数,如iodevicecontral,所以又包括了ntddk.h.我想在passthru中也调用这些函数,就必须也包含ntddk.h文件,但却发现同时编译ntddk.h和ndis.h会出错,因为在ndis.h中重复定义了许多ntddk.h中的函数,我于是又回头看packet例子是如何做得,也许添加了一些宏定义?但我没找到这样的语句,请问谁能告诉我该怎么做?
|
|
最新喜欢:moqing... |
沙发#
发布于:2002-05-22 10:08
分成两个源文件吧,我以前也碰到过,就是这么干的。
|
|
板凳#
发布于: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> |
|
|
地板#
发布于:2002-05-22 11:00
分成两个源文件吧,我以前也碰到过,就是这么干的。老大!介绍一下你的经验吧!我计划把passthru改成有简单防火墙功能的东东,实现细节自己来,请讲讲编程的大致思路吧! 我 昨天看见sirroom的帖子,“关于ndis.h\",好深奥,在vc 里改,这些个头文件怎么处理?再问:能和应用层联系起来吗?不用那些INF文件安装,直接生成一个工程? |
|
|
地下室#
发布于:2002-05-22 11:28
现在才来学VC然后接着学DDK来做包过滤,做毕业设计??这样太紧张了吧??时间这么紧你来的及么??
|
|
|
5楼#
发布于:2002-05-22 18:32
看看Ndis.h就知道了
定义宏 NDIS_WDM = 1是要Ndis.h 包含WDM.h,否则它包含ntddk.h |
|
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语言的学习会有帮助。 |
|
|
7楼#
发布于:2002-05-22 19:48
现在才来学VC然后接着学DDK来做包过滤,做毕业设计??这样太紧张了吧??时间这么紧你来的及么?? vc倒是没有大问题,都看了一个多月了, 我只是现在搞不清ddk,passthru,vc间的联系。 我如果只在passthru中加入我的一点代码,在按inf的描述装一下,直接在虚拟驱动层实现一点过滤功能,不只可行吗?给个建议吧! |
|
|
8楼#
发布于:2002-05-22 22:11
这个问题胡斑竹过去说过许多次了!加个WDM的宏!看我的代码: *++ 老兄,我强烈的感谢,我还以为我又要重复第n+1遍呢。 你应该建议他们多看看头文件,加强一点c语言的基本功。 如果有空,做一点linux的库函数移植(到w2k)下对 c语言的学习会有帮助。 [/quote] 晕~~~这些宏的定义都是去年你教我的!不过老大说的也是,我发现最近的菜鸟基本上都是C/CPP都没学好就来搞DDK的,这样走的弯路太多!比较集中的问题是指针和内存的关系还没理解,预处理根本不知道是什么!编译错误消息当作没看见!问的问题不知所谓~~碰到问题不加思考~~最近的问题比起过去的质量差多了! |
|
|
9楼#
发布于:2002-05-23 18:00
各位批评的是,我一定痛改前非!
|
|
10楼#
发布于:2002-05-23 18:40
直接include <ndis.h>,据情况ndis.h里自然会加上ntddk.h或是wdm.h
不过,偶也有个问题,。 |
|
|