阅读:3980回复:36
关于调用 NdisRequest() 查询网卡 MAC 地址导致蓝屏的问题?[150 分]
为了能让大家明白我的问题从而更快的给我建议我尽量把问题说清楚一点:
我改写的是 XP 版的 Passthru,用于 2000 中。我的目的是想要查询我的 IMD 绑定的网卡的 MAC 地址,于是我在 MPInitialize() 的结尾部分写了如下代码: pAdapt->Request.RequestType = NdisRequestQueryInformation; pAdapt->Request.DATA.QUERY_INFORMATION.Oid = OID_802_3_CURRENT_ADDRESS; pAdapt->Request.DATA.QUERY_INFORMATION.InformationBuffer = pAdapt->MACAddress; pAdapt->Request.DATA.QUERY_INFORMATION.InformationBufferLength = 6; pAdapt->Request.DATA.QUERY_INFORMATION.BytesWritten = 0; pAdapt->Request.DATA.QUERY_INFORMATION.BytesNeeded = 0; NdisRequest( &Status, pAdapt->BindingHandle, &pAdapt->Request ); Request 就定义在原来的 ADAPT 结构中: NDIS_REQUEST Request; 但是现在程序会因此蓝屏,我把上面代码放在 PtOpenAdapterComplete() 中也是一样。 希望各路高手帮忙,还要提供什么信息尽管问,谢谢大家!!! |
|
最新喜欢:txysp |
沙发#
发布于:2002-12-16 21:18
有没有分配空间?
还有换个地方? MPInitialize的时候还没有binding到网卡呢吧 |
|
|
板凳#
发布于:2002-12-16 21:21
严重怀疑的的PNDIS_REQUEST没有分配空间
|
|
|
地板#
发布于:2002-12-16 21:22
有没有分配空间? 你是说 pAdapt->MACAddress ? CHAR MACAddress[6]; 还有换个地方? 可是 MPInitialize 是在 NdisOpenAdapter 之后被调用的啊,应该已经绑定了吧? 那换在哪里好呢? |
|
地下室#
发布于:2002-12-16 21:25
可我的 Request 是个变量啊,不是指针,还要分配空间?
|
|
5楼#
发布于:2002-12-16 21:29
蓝屏的信息是什么 IRQL_NOT_EQUAL_OR_LESSTHAN
还有就是在 PtRequestComplete 里面用不用特别处理? |
|
6楼#
发布于:2002-12-16 21:35
先注册的设备,后注册的协议,注册了协议以后才binding到adapter,
|
|
|
7楼#
发布于:2002-12-16 21:40
你运行的时候IRQL太高,降低到<= DISPATCH_LEVEL
|
|
|
8楼#
发布于:2002-12-16 21:44
你试试用局部的Request呢?
|
|
|
9楼#
发布于:2002-12-16 21:46
IRQL好象不高,不是在PASSIVE_LEVEL上吗?怎么会呢?
|
|
|
10楼#
发布于:2002-12-16 22:07
你试试用局部的Request呢? 局部和全局也会影响吗? |
|
11楼#
发布于:2002-12-16 22:07
你运行的时候IRQL太高,降低到<= DISPATCH_LEVEL 应该是在 PASSIVE_LEVEL 上啊 |
|
12楼#
发布于:2002-12-16 22:33
你用windbg双机调试一下。
|
|
|
13楼#
发布于:2002-12-16 23:04
又这么热闹了 :D
|
|
|
14楼#
发布于:2002-12-17 09:01
你用windbg双机调试一下 这样在蓝屏的时候就可以知道原因了?呵呵还从来没用过呢:) |
|
15楼#
发布于:2002-12-17 09:08
是否应该把你的代码放在MPQueryInformation中试一试?
|
|
16楼#
发布于:2002-12-17 09:09
是否应该把你的代码放在MPQueryInformation中试一试? 你的意思是每当上层调用 MPQueryInformation,我就查一次吗? |
|
17楼#
发布于:2002-12-17 09:23
你是在注册协议之前查询的还是注册以后查询的?
|
|
|
18楼#
发布于:2002-12-17 09:32
你是在注册协议之前查询的还是注册以后查询的? 是在之后啊,我现在是在 MPInitialize 的末尾查询,协议已经注册了。 |
|
19楼#
发布于:2002-12-17 09:50
应该在openadapter成功以后才去查询
|
|
|
上一页
下一页