IRQL Problem in NDIS IM

Hi All,
I’m simply working on NDIS IM Deiver Sample “IMSamp” provided by Ms. Now
my problem is when i run Ndis_Tester on its registered miniport “IMSampMPX”
I get following exception

MM:***PAGE FAULT AT IRQL > 1 Va 0, IRQL 2
*** Fatal System Error: 0x0000000A
(0x00000000,0x00000002,0x00000000,0xF72CA6E9)

While looking quickly to the code I found that the bug encounter at the
code where IMSamp try to fake for OID “OID_GEN_MAC_OPTIONS”. Following is
the code part…

*((PULONG)IMReqBuffer->ReqBuffer.DATA.QUERY_INFORMATION.InformationBuffer)
|=
NDIS_MAC_OPTION_FULL_DUPLEX;

Why does this create problem with Ndis_Tester and passed in smooth manner
while in normal operation. Does accessing this memory require to change
IRQL? How can I get current IRQL and switch between IRQL, if it require? Is
it safe to call KeRaiseIrql and KeLowerIrql?
Thankx at Highest level of IRQL :wink:
– Sumit


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com

In this case the NDIS tester isusing a “probe-for-size” NDIS request. The
first attempt at the query is made with the InformationBuffer set to NULL
and its InformationBufferLength set to zero. In response, the target will
set the BytesNeeded field, the requestor will then allocate memory of
sufficient size, and then fetch the real data using a second request.

IMSamp did not account for this method for this OID. To fix this, check for
NULL InformationBuffer and 0 InformationBufferLength. Do not access
InformationBuffer is it is NULL or zero length.

Good luck,

Thomas F. Divine

PCAUSA - Toolkits & Resources For Network Software Developers
NDIS Protocol - NDIS Intermediate - TDI Client
http: - http:

----- Original Message -----
From: “Sumit Pandya”
To: “NT Developers Interest List”
Sent: Monday, October 22, 2001 9:38 AM
Subject: [ntdev] IRQL Problem in NDIS IM

> Hi All,
> I’m simply working on NDIS IM Deiver Sample “IMSamp” provided by Ms.
Now
> my problem is when i run Ndis_Tester on its registered miniport
“IMSampMPX”
> I get following exception
>
> MM: PAGE FAULT AT IRQL > 1 Va 0, IRQL 2
>
Fatal System Error: 0x0000000A
> (0x00000000,0x00000002,0x00000000,0xF72CA6E9)
>
> While looking quickly to the code I found that the bug encounter at the
> code where IMSamp try to fake for OID “OID_GEN_MAC_OPTIONS”. Following is
> the code part…
>
> *((PULONG)IMReqBuffer->ReqBuffer.DATA.QUERY_INFORMATION.InformationBuffer)
> |=
> NDIS_MAC_OPTION_FULL_DUPLEX;
>
> Why does this create problem with Ndis_Tester and passed in smooth manner
> while in normal operation. Does accessing this memory require to change
> IRQL? How can I get current IRQL and switch between IRQL, if it require?
Is
> it safe to call KeRaiseIrql and KeLowerIrql?
> Thankx at Highest level of IRQL :wink:
> – Sumit
>


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com</http:></http:>

> ----------

From: xxxxx@elitecore.com[SMTP:xxxxx@elitecore.com]
Reply To: xxxxx@lists.osr.com
Sent: Monday, October 22, 2001 3:38 PM
To: xxxxx@lists.osr.com
Subject: [ntdev] IRQL Problem in NDIS IM

While looking quickly to the code I found that the bug encounter at
the
code where IMSamp try to fake for OID “OID_GEN_MAC_OPTIONS”. Following is
the code part…

*((PULONG)IMReqBuffer->ReqBuffer.DATA.QUERY_INFORMATION.InformationBuffer)
|=
NDIS_MAC_OPTION_FULL_DUPLEX;

On quite unrelated note, I believe above option is wrong and might cause
your previous problems with checked NDIS. This option is IMHO for serialized
drivers only and if you use it for deserialized driver, NDIS can be
confused. Read docs, it makes no sense to use it for deserialized driver.
I’m not quite sure and haven’t tested it but my old IM driver clears it and
works with no problem.

Best regards,

Michal Vodicka
Veridicom
(RKK - Skytale)
[WWW: http://www.veridicom.com , http://www.skytale.com]


You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com