解决ndis协议驱动ndisprot“发生系统错误 31”问题

更新时间:2023-06-02 15:23:23 阅读: 评论:0

解决ndis协议驱动描写春天的片段ndisprot“发生系统错误 31”问题
/s/blog_541329b40100exoy.html
粗犷拼音(2009-08-27 19:26:23)
转载
标签:
ndis
协议驱动
系统错误
31
杂谈
冬天手脚出汗
分类:好好工作
坚定的理想信念
                      解决函谷关之战ndis协议驱动ndisprot“发生系统错误 31”问题
WDKndisprot编译后,安装为网络协议,然后net start ndisprot
结果显示:发生系统错误 31 连到系统上的设备没有发挥作用
没办法,准备用WinDbg追踪。
现在 DriverEntry里面的变量定义下加上:
    #if DBG
    _asm int 3
    #endif
然后重新进入vmware中的XP,运行net start ndisprot,中断下来。
一直跟踪到NdisRegisterProtocol,显示出错:"Failed to register protocol with NDIS\n"
ufmovie怎么读反编译,大概看了下NdisRegisterProtocol
kd> uf NDIS!NdisRegisterProtocol
NDIS!NdisRegisterProtocol:
f7ba817f 8bff            mov    edi,edi
f7ba8181 55              push    ebp
f7ba8182 8bec            mov    ebp,esp
f7ba8184 51              push    ecx
f7ba8185 53              push    ebx
f7ba8186 56              push    esi
f7ba8187 57              push    edi
f7ba8188 b93861baf7      mov    ecx,offt NDIS!ndisPkgs+0x20 (f7ba6138)
f7ba818d e88c8bffff      call    NDIS!ndisReferencePackage (f7ba0d1e)
f7ba8192 b91861baf7      mov    ecx,offt NDIS!ndisPkgs (f7ba6118)
f7ba8197 e8828bffff      call    NDIS!ndisReferencePackage (f7ba0d1e)
f7ba819c 8b7d10          mov    edi,dword ptr [ebp+10h]
f7ba819f 8a07            mov    al,byte ptr [edi]
f7ba81a1 3c04            cmp    al,4
f7ba81a3 0f824b5b0000    jb      NDIS!NdisRegisterProtocol+0x26 (f7badcf4)
NDIS!NdisRegisterProtocol+0x30:
f7ba81a9 0f8471180000    je      NDIS!NdisRegisterProtocol+0x32 (f7ba9a20)
NDIS!NdisRegisterProtocol+0x3c:
f7ba81af 3c05            cmp    al,5
f7ba81b1 0f8584180000    jne    NDIS!NdisRegisterProtocol+0x191 (f7ba9a3b)
NDIS!NdisRegisterProtocol+0x44:
f7ba81b7 807f0101        cmp    byte ptr [edi+1],1
f7ba81bb 0f877a180000    ja      NDIS!NdisRegisterProtocol+0x191 (f7ba9a3b)
NDIS!NdisRegisterProtocol+0x4e:
f7ba81c1 6a6c            push    6Ch
NDIS!NdisRegisterProtocol+0x50:
f7ba81c3 33c9            xor    ecx,ecx
f7ba81c5 394f3c          cmp    dword ptr [edi+3Ch],ecx
f7ba81c8 58              pop    eax
f7ba81c9 0f8462180000    je      NDIS!NdisRegisterProtocol+0x186 (f7ba9a31)
NDIS!NdisRegisterProtocol+0x5c:
f7ba81cf 394f40          cmp    dword ptr [edi+40h],ecx
f7ba81d2 0f8459180000    je      NDIS!NdisRegisterProtocol+0x186 (f7ba9a31)
NDIS!NdisRegisterProtocol+0x65:
f7ba81d8 0fb7c0          movzx  eax,ax
f7ba81db 394514          cmp    dword ptr [ebp+14h],eax
f7ba81de 8945fc          mov    dword ptr [ebp-4],eax
f7ba81e1 0f82145b0000    jb      NDIS!NdisRegisterProtocol+0x70 (f7badcfb)
NDIS!NdisRegisterProtocol+0x7c:
f7ba81e7 83c730          add    edi,30h
f7ba81ea 0fb707          movzx  eax,word ptr [edi]
f7ba81ed 684e447062      push    6270444Eh
f7ba81f2 bec6000000      mov    esi,0C6h
f7ba81f7 03c6            add    eax,esi
f7ba81f9 50              push    eax
f7ba81fa 51              push    ecx
f7ba81fb 897d14          mov    dword ptr [ebp+14h],edi
f7ba81fe ff15505ebaf7    call    dword ptr [NDIS!_imp__ExAllocatePoolWithTag (f7ba5e50)]
f7ba8204 8bd8            mov    ebx,eax
f7ba8206 85db            test    ebx,ebx
f7ba8208 0f84f95a0000    je      NDIS!NdisRegisterProtocol+0x9f (f7badd07)
。。。。
重新进入,中断后,到NdisRegisterProtocol F11 STEP IN
到:
f5bd00cb 837d8c00        cmp    dword ptr [ebp-74h],0
kd> dd ebp-74h   
f5a96c08  c0010005 00000005 00000000 f5bc8280
开工大吉祝福语
返回值c0010005,到ndis.h查看对应:
#define NDIS_STATUS_BAD_CHARACTERISTICS        ((NDIS_STATUS)0xC0010005L)
从上面代码看,是将获得NDIS版本作为依据,将NDIS50_PROTOCOL_CHARACTERISTICS CharacteristicsLength比较

由于不知道NdisRegisterProtocol源码在哪个文件,在这里纠结了一番。不过后来在网上找到了。
既然是尺寸问题,把NdisRegisterProtocol的最后一个参数骚气十足的网名sizeof(NDIS_PROTOCOL_CHARACTERISTICS)改掉
暂时先把sizeof(NDIS50_PROTOCOL_CHARACTERISTICS)放进去用。
编译后安装协议,net start ,显示启动成功。
具体如何合理改,暂时还没考虑,先解决能用问题。不过ndisprotpassthru在协议驱动使用的注册函数都是一样的,passthru一点问题都没有,等空了再看看。

本文发布于:2023-06-02 15:23:23,感谢您对本站的认可!

本文链接:https://www.wtabcd.cn/fanwen/fan/82/834105.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:系统   协议   显示   驱动   文件   错误   问题   发生
相关文章
留言与评论(共有 0 条评论)
   
验证码:
推荐文章
排行榜
Copyright ©2019-2022 Comsenz Inc.Powered by © 专利检索| 网站地图