Google Groups Home
Help | Sign in
Message from discussion NDIS calls DPR without ISR during init
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
 
From:
To:
Cc:
Followup To:
Add Cc | Add Followup-to | Edit Subject
Subject:
Validation:
For verification purposes please type the characters you see in the picture below or the numbers you hear by clicking the accessibility icon. Listen and type the numbers you hear
 
kyleb  
View profile  
 More options Oct 31 1997, 3:00 am
Newsgroups: comp.os.ms-windows.programmer.nt.kernel-mode
From: "kyleb" <kyl...@microsoft.com>
Date: 1997/10/31
Subject: Re: NDIS calls DPR without ISR during init

below

--
The opinions expressed in this message are my own personal views
and do not reflect the official views of Microsoft Corporation

please respond to newsgroup. Do not send mail.

Stephan Wolf wrote in article <34575def.22208263@spock>...

>In my NDIS4 Miniport, MiniportHandleInterrupt() is called by the NDIS
>Wrapper during execution of MiniportInitialize() without a preceding
>call to MiniportISR().

the MiniportHandleInterrupt is called before you return from
MiniportInitialize or
before you get back from the call to NdisMRegisterMiniport?

>What I see in the stack trace is that MiniportHandleInterrupt() is
>called by ndisMDpcTimer().

>My Miniport does not have the optional MiniportDisableInterrupt() and
>MiniportEnableInterrupt() functions.

When you call NdisMRegisterInterrupt do set RequestIsr or SharedInterrupt to
TRUE?
if so then your Enable/Disable won't be called (more on that below).
Once you return from MiniportInitialize you will get a series of requests
from the wrapper.
these requests will be sent before your call to NdisMRegisterMiniport
returns on <= NT4.0 (NT 5.0 will be very different).
After each of these requests we queue a DPC to fire. This is to pickup any
stray events that the miniport may have.
Some expect some status to be set by their interrupt handler.  The fact that
the ndisMDpcTimer was the caller means
this could be the result of these requests.

>Has anyone ever seen this before?

>The reason I am asking is that this violates the rules of NDIS
>interrupt handling as described in DDK Help: "When
>MiniportHandleInterrupt is called, interrupts are disabled on the NIC,
>either by the MiniportISR or MiniportDisableInterrupt function".

>Maybe it's just because I don't have a MiniportDisableInterrupt(),
>which is optional?

if you request that you want your isr called when you register it or if you
say that your interrupt is shared.
the you do NOT need the MiniportDisableInterrupt and
MiniportEnableInterrupt. This is because you are
expected to disable int's in your isr and enable them in your dpc.
if you don't specifically say that you want an isr then ndis will skip the
call. when the isr is triggered ndis will call
the MiniportDisableInterrupt routine and queue the dpc for you. after you
process the dpc it will call MiniportEnableInterrupt

>Stephan Wolf <sw...@syskonnect.de> http://www.syskonnect.de
>SysKonnect - The Server Connectivity Company


    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2009 Google