yaojr21
驱动牛犊
驱动牛犊
  • 注册日期2002-05-13
  • 最后登录2003-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1520回复:4

搞不懂的问题,请各位大虾帮忙。

楼主#
更多 发布于:2002-06-05 11:05
在packet.c中的driverentry例程中:
NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )

{
/*
一系列的操作
*/    
    protocolChar.MajorNdisVersion            = 5;
    protocolChar.MinorNdisVersion            = 0;
    protocolChar.Name                        = protoName;
    protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
/*
一系列的操作

*/      
  
}
其中的: protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
请问是不是把指向PacketOpenAdapterComplete函数的指针赋给protocolChar.OpenAdapterCompleteHandler 域,但又是怎么样把参数传给函数PacketOpenAdapterComplete,好像没看到什么时候去调用该函数,也没有传什么参数给该函数嘛?一直让我不知其解,请各位大虾帮忙解释一下,谢谢!
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2002-06-05 11:12
在packet.c中的driverentry例程中:
NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )

{
/*
一系列的操作
*/    
    protocolChar.MajorNdisVersion            = 5;
    protocolChar.MinorNdisVersion            = 0;
    protocolChar.Name                        = protoName;
    protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
/*
一系列的操作

*/      
  
}
其中的: protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
请问是不是把指向PacketOpenAdapterComplete函数的指针赋给protocolChar.OpenAdapterCompleteHandler 域,但又是怎么样把参数传给函数PacketOpenAdapterComplete,好像没看到什么时候去调用该函数,也没有传什么参数给该函数嘛?一直让我不知其解,请各位大虾帮忙解释一下,谢谢!

你当然看不到由调用的地方,因为
protocolChar.OpenAdapterCompleteHandler是由NDIS来调用的.

我思故我在,脑袋不会坏.
yaojr21
驱动牛犊
驱动牛犊
  • 注册日期2002-05-13
  • 最后登录2003-05-20
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2002-06-05 11:14
哦,谢谢,那它的参数也是可以由NDIS自动的传进去的吧?
Tom_lyd
驱动大牛
驱动大牛
  • 注册日期2001-09-02
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地板#
发布于:2002-06-05 11:20
在packet.c中的driverentry例程中:
NTSTATUS
DriverEntry(
    IN PDRIVER_OBJECT DriverObject,
    IN PUNICODE_STRING RegistryPath
    )

{
/*
一系列的操作
*/    
    protocolChar.MajorNdisVersion            = 5;
    protocolChar.MinorNdisVersion            = 0;
    protocolChar.Name                        = protoName;
    protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
/*
一系列的操作

*/      
  
}
其中的: protocolChar.OpenAdapterCompleteHandler  = PacketOpenAdapterComplete;
请问是不是把指向PacketOpenAdapterComplete函数的指针赋给protocolChar.OpenAdapterCompleteHandler 域,但又是怎么样把参数传给函数PacketOpenAdapterComplete,好像没看到什么时候去调用该函数,也没有传什么参数给该函数嘛?一直让我不知其解,请各位大虾帮忙解释一下,谢谢!


跟非NDIS驱动中设备Dispatch例程入口一样的。只不过是换了个形式。以前是I/O Manager管理各个IRP入口,而现在换成了NDIS,又有一套新的接口。
Tom_lyd
gjpland
驱动小牛
驱动小牛
  • 注册日期2001-09-13
  • 最后登录2011-03-22
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2002-06-05 11:20
哦,谢谢,那它的参数也是可以由NDIS自动的传进去的吧?

是的.
我思故我在,脑袋不会坏.
游客

返回顶部