dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2629回复:24

NDIS passthru 例子 中能不能这样修改 请指点

楼主#
更多 发布于:2003-02-24 14:06
我如果想在应用层传递数据到 passthru 驱动中 在passthru的DriverEntry中能不能加
// Initialize function pointers

DriverObject->DriverUnload = DriverUnload;
DriverObject->DriverExtension->AddDevice = AddDevice;

DriverObject->MajorFunction[IRP_MJ_CREATE] = DispatchCreate;
DriverObject->MajorFunction[IRP_MJ_CLOSE] = DispatchClose;
DriverObject->MajorFunction[IRP_MJ_READ] =DispatchReadWrite;
DriverObject->MajorFunction[IRP_MJ_WRITE]=DispatchReadWrite;
DriverObject->MajorFunction[IRP_MJ_DEVICE_CONTROL] = DispatchControl;

并通过deviceiocontrol 传数据进去的
zgc7622
驱动小牛
驱动小牛
  • 注册日期2003-02-24
  • 最后登录2016-01-09
  • 粉丝0
  • 关注0
  • 积分136分
  • 威望15点
  • 贡献值0点
  • 好评度13点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-02-28 13:58
请问Device和Driver有什么区别呢???(我是一个新手请帮助谢谢)
hujun
驱动牛犊
驱动牛犊
  • 注册日期2002-02-01
  • 最后登录2004-03-30
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2003-02-28 02:35
要学的东西还好多呀!
我真是太笨了,还是不会写驱动。
mingyulantian
驱动牛犊
驱动牛犊
  • 注册日期2002-11-26
  • 最后登录2006-01-13
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2003-02-26 16:16
还是到
http://www.driverdevelop.com/forum/html_34571.html?1046247305
这儿去看看吧,里面有你想要的东东
skylgl
驱动小牛
驱动小牛
  • 注册日期2002-05-13
  • 最后登录2016-01-07
  • 粉丝0
  • 关注0
  • 积分71分
  • 威望9点
  • 贡献值0点
  • 好评度8点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2003-02-26 09:15
Create Device 应该要注意勇NDIS的 专门的注册函数,这个在DDK中已经做了声明
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2003-02-25 12:44
mikeluo:

你的那段代码是XP PASSTHRU里的吗?
要仔细看看XP PASSTHRU了


不是,不过差不多,应该是一样的。
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
kaput
驱动中牛
驱动中牛
  • 注册日期2002-06-26
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2003-02-25 12:33
passthru里面有调用NdisTranferdata么?


混了---
我看的是winxp的passthru和NdisUio
我把他们合2为一了。
实际是NdisUio里面的。

这个东西很久以前做完了就没管了,搞混了
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉......
fuq_dddd
驱动老牛
驱动老牛
  • 注册日期2002-10-15
  • 最后登录2009-10-09
  • 粉丝0
  • 关注0
  • 积分331分
  • 威望57点
  • 贡献值0点
  • 好评度28点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2003-02-25 12:18
mikeluo:

你的那段代码是XP PASSTHRU里的吗?
要仔细看看XP PASSTHRU了
星星之火 可以燎原 每一个光亮 都可能是黎明 [img]http://joke.tom.com/img/assets/1/gaoxiao_80_910.gif[/img]
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2003-02-25 11:11
passthru里面有调用NdisTranferdata么?
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
kaput
驱动中牛
驱动中牛
  • 注册日期2002-06-26
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2003-02-25 11:06
看win xp的,win2k的没用

更正
winxp下的NdisUio很不错,就是一开始会被它的宏搞昏。下面说的是指NdisUio


winxp在PacketSize> LookAheadBufferSizes时的NdisTranferdata()用了一个小小的技巧,很有意思。


[编辑 -  2/25/03 by  kaput]

[编辑 -  2/25/03 by  kaput]
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉......
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2003-02-25 10:51
我给完了 希望下次还能得到你的解答 谢谢 祝好
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2003-02-25 10:48
谢谢你  给分 我去看例子 我懂得东西不多 谢谢你告诉我在哪里看例子  这可能就是说的 师父领进门修行在个人 吧  呵呵

非常感谢  嗯 怎么给你分
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2003-02-24 19:50
2k ddk中的passthru的例子没有这段,不过xp的例子里面有
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2003-02-24 17:58
kaput  你是说 那个什么都不做的例子?
kaput
驱动中牛
驱动中牛
  • 注册日期2002-06-26
  • 最后登录2004-08-17
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2003-02-24 17:21
把windows下的passthru看明白,差不多也就明白了
天下风云出我辈 一入江湖岁月催 鸿图霸业谈笑中 不胜人生一场醉......
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2003-02-24 16:39
你不会替换成自己的函数么????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????????
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2003-02-24 16:32
for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
{
DispatchTable = IPSecConfigProc;
}


中是不是
DispatchTable = IPSecConfigProc;
啊?

IPSecConfigProc 这个是处理所有IRP的 函数么?



mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
17楼#
发布于:2003-02-24 16:00
 NDIS_STATUS         status = NDIS_STATUS_SUCCESS;
    UNICODE_STRING      DeviceName;
    UNICODE_STRING      DeviceLinkUnicodeString;
    PDRIVER_DISPATCH    DispatchTable[IRP_MJ_MXAIMUM_FUNCTION];
PDEVICE_OBJECT      deviceObject;
NDIS_HANDLE         NdisDeviceHandle;
    UINT                i;


for (i = 0; i < IRP_MJ_MAXIMUM_FUNCTION; i++)
{
DispatchTable = yourdispatchfun;
}

NdisInitUnicodeString(&DeviceName, NT_DEVICE_NAME);
NdisInitUnicodeString(&DeviceLinkUnicodeString, DOS_DEVICE_NAME);

status = NdisMRegisterDevice(
NdisWrapperHandle,
&DeviceName,
&DeviceLinkUnicodeString,
&DispatchTable[0],
&deviceObject,          // global variable
&NdisDeviceHandle       //global variable
);

return status;
}

大概就是这样的过程

[编辑 -  2/24/03 by  mikeluo]
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
dana_wx
驱动牛犊
驱动牛犊
  • 注册日期2002-11-08
  • 最后登录2003-07-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
18楼#
发布于:2003-02-24 15:50
看过了 对MajorFunction 怎么赋值啊 哪里有没有例子的啊



NdisMRegisterDevice(
WrapperHandle,//    IN NDIS_HANDLE  NdisWrapperHandle,
myName,     //IN PNDIS_STRING  DeviceName,
myName, //IN PNDIS_STRING  SymbolicName,
   MajorFunction,//IN PDRIVER_DISPATCH  MajorFunctions[],
   myDriverObject,//OUT PDEVICE_OBJECT  *pDeviceObject,
   NdisDeviceHandle,//OUT NDIS_HANDLE  *NdisDeviceHandle
    );
mikeluo
驱动老牛
驱动老牛
  • 注册日期2001-09-04
  • 最后登录2007-05-07
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
19楼#
发布于:2003-02-24 14:59
看一下ddk里面NdisMRegisterDevice的说明先
学而不思则罔,思而不学则殆 学而思之,思而学之,岂非圣人乎?
上一页
游客

返回顶部