jeosph
驱动中牛
驱动中牛
  • 注册日期2001-04-19
  • 最后登录2006-08-08
  • 粉丝0
  • 关注0
  • 积分96分
  • 威望11点
  • 贡献值0点
  • 好评度9点
  • 原创分0分
  • 专家分0分
阅读:1863回复:2

询问:pcmcia接口的ethernet驱动不能执行MiniportInitialize()的问题?

楼主#
更多 发布于:2003-11-19 11:19
因为工作需要,我写了一个PCMCIA接口ethernet的驱动,98下用。安装后,DriverEntry()的返回结果未SUCCESS,
在网络邻居->属性中看,网络设备与协议的绑定也有了。
但设备管理器中,设备状态始终为:此设备的NDIS.vxd,NTKERN.vxd设备装载程序无法加载设备驱动程序。(code. 2.)
因为98驱动安装后要重新启动设备,我无法确定在启动过程中是否调用了MIniportInitialize(),所以我在MIniportInitialize()就调用RecordInfo()
如果MIniportInitialize()运行,RecordInfo()就会在硬盘上写一个记录文件。

但实际的结果是:记录文件中没有任何内容,也就是说,MIniportInitialize()根本就没有运行。
1)用其他方式测试表明,98中RecordInfo()时 没有问题的
2)用Waltoney提供的工具,可以检测我编译后的程序没有引入98不支持的函数入口
3)驱动程序在2k中可以使用
4)98中,我的source 文件编译指示为:
 C_DEFINES=$(C_DEFINES) -DNDIS30 -DNDIS_MINIPORT_DRIVER -DNDIS30_MINIPORT -D_WIN98 -DBINARY_COMPATIBLE
5)我找到98中DLink660 PCMCIA网卡的inf文件,发现其协议副版本MinorNdisVersion = 0x0a,主版本为3
  我还察看了其他一些驱动的代码如Ne2000 发现也是如此,但是如果我将我的协议MinorNdisVersion = 0x0a,则注册miniport返回
  status = 0xc0010005,一个我没有找到的代码说明。
  
综上述,有哪位好心的高人,知道问题处在哪里,请不吝赐教。鄙人将甚为感激!

DriverEntry()
{
NDIS_HANDLE NdisWrapperHandle;
NDIS_MINIPORT_CHARACTERISTICS MyDeviceChar;

//init wrapper
NdisMInitializeWrapper(
&NdisWrapperHandle,
DriverObject,
RegistryPath,
NULL
);
//clear zero
NdisZeroMemory(&MyDeviceChar, sizeof(NDIS_MINIPORT_CHARACTERISTICS));
 
MyDeviceChar.MajorNdisVersion = 3;
MyDeviceChar.MinorNdisVersion = 0;
MyDeviceChar.InitializeHandler = MiniInit;
MyDeviceChar.HaltHandler = MiniHalt;
MyDeviceChar.QueryInformationHandler = MiniQuery;
MyDeviceChar.SetInformationHandler = MiniSet;
MyDeviceChar.ResetHandler = MiniReset;
MyDeviceChar.SendPacketsHandler = MiniSendPacket;
MyDeviceChar.ISRHandler = MiniIsr;
MyDeviceChar.HandleInterruptHandler= MiniIsrDpc;
MyDeviceChar.CheckForHangHandler= MiniCheck;

//register miniport
Status = NdisMRegisterMiniport(
NdisWrapperHandle,
&MyDeviceChar,
sizeof(NDIS_MINIPORT_CHARACTERISTICS)
);

if(Status != NDIS_STATUS_SUCCESS)
NdisTerminateWrapper(NdisWrapperHandle, NULL);

return Status;
}

MiniInit()
{
  ....
  RecordInfo();  //系统重新启动时,就会写记录文件
  
  ......
}

最新喜欢:

iwubiwub
iwub
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望60点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-03-09 16:43
我碰上的问题和你一样,不知道你现在解决了没有。若解决了,告诉兄弟一生,不胜感激
iwub
iwub
驱动牛犊
驱动牛犊
  • 注册日期2002-10-09
  • 最后登录2009-06-22
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望60点
  • 贡献值0点
  • 好评度17点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-03-21 16:06
改成ndis50_miniport_characteristics试一下。
iwub
游客

返回顶部