Windows Vista Tips

Windows Vista Tips > Newsgroups > Windows Vista Drivers > WDF Interrupt Issue

Reply
Thread Tools Display Modes

WDF Interrupt Issue

 
 
Murugesan
Guest
Posts: n/a

 
      11-10-2009
Hi all,

I am working with a PCI based WDF function driver. I've created an
interrupt object using wdfinterruptcreate() & initialized the
WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
documentation, i found that the framework takes care of adding interrupt
resource information when the device moves into D0 state. Now the problem is,
after doing all this initialization my interrupt handler doesn't gets invoked
when my hardware raises an interrupt after the device moves into D0 state
eventhough all the interrupts has been enabled. I could notice that the
framework has added the interrupt resource information to the interrupt
object, by using WdfInterruptGetInfo() in the context of SelfManagedIoInit
callback. Am I missing anything related with the interrupt handling?

Thanks,
Murugesan
 
Reply With Quote
 
 
 
 
Doron Holan [MSFT]
Guest
Posts: n/a

 
      11-11-2009
are your programming your hw to generate the interrupt and route it
correctly? are you programming your hw correctly in D0Entry?

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Murugesan" <> wrote in message
news:70DE1BF5-1409-408C-B30F-...
> Hi all,
>
> I am working with a PCI based WDF function driver. I've created an
> interrupt object using wdfinterruptcreate() & initialized the
> WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
> documentation, i found that the framework takes care of adding interrupt
> resource information when the device moves into D0 state. Now the problem
> is,
> after doing all this initialization my interrupt handler doesn't gets
> invoked
> when my hardware raises an interrupt after the device moves into D0 state
> eventhough all the interrupts has been enabled. I could notice that the
> framework has added the interrupt resource information to the interrupt
> object, by using WdfInterruptGetInfo() in the context of SelfManagedIoInit
> callback. Am I missing anything related with the interrupt handling?
>
> Thanks,
> Murugesan


 
Reply With Quote
 
Murugesan
Guest
Posts: n/a

 
      11-13-2009
Thanks for your inputs. I've programmed my h/w correctly. The only variance
is like,
my h/w initialization & enabling interrupts has been done in the context of
SelfManagedIoInit() callback, which is called after D0entry callback. Also i
am sure that the framework retreived the interrupt resource
information(mainly IRQ) by checking with WdfInterruptGetInfo().

Murugesan

"Doron Holan [MSFT]" wrote:

> are your programming your hw to generate the interrupt and route it
> correctly? are you programming your hw correctly in D0Entry?
>
> d
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Murugesan" <> wrote in message
> news:70DE1BF5-1409-408C-B30F-...
> > Hi all,
> >
> > I am working with a PCI based WDF function driver. I've created an
> > interrupt object using wdfinterruptcreate() & initialized the
> > WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
> > documentation, i found that the framework takes care of adding interrupt
> > resource information when the device moves into D0 state. Now the problem
> > is,
> > after doing all this initialization my interrupt handler doesn't gets
> > invoked
> > when my hardware raises an interrupt after the device moves into D0 state
> > eventhough all the interrupts has been enabled. I could notice that the
> > framework has added the interrupt resource information to the interrupt
> > object, by using WdfInterruptGetInfo() in the context of SelfManagedIoInit
> > callback. Am I missing anything related with the interrupt handling?
> >
> > Thanks,
> > Murugesan

>
> .
>

 
Reply With Quote
 
Doron Holan [MSFT]
Guest
Posts: n/a

 
      11-16-2009
you should use EvtInterruptEnable and EvtDeviceD0EntryPostInterruptsEnabled
for the work you are doing in self managed io

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Murugesan" <> wrote in message
news:7FE38A6D-FFDE-4D59-8537-...
> Thanks for your inputs. I've programmed my h/w correctly. The only
> variance
> is like,
> my h/w initialization & enabling interrupts has been done in the context
> of
> SelfManagedIoInit() callback, which is called after D0entry callback. Also
> i
> am sure that the framework retreived the interrupt resource
> information(mainly IRQ) by checking with WdfInterruptGetInfo().
>
> Murugesan
>
> "Doron Holan [MSFT]" wrote:
>
>> are your programming your hw to generate the interrupt and route it
>> correctly? are you programming your hw correctly in D0Entry?
>>
>> d
>>
>> --
>>
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>>
>> "Murugesan" <> wrote in message
>> news:70DE1BF5-1409-408C-B30F-...
>> > Hi all,
>> >
>> > I am working with a PCI based WDF function driver. I've created an
>> > interrupt object using wdfinterruptcreate() & initialized the
>> > WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
>> > documentation, i found that the framework takes care of adding
>> > interrupt
>> > resource information when the device moves into D0 state. Now the
>> > problem
>> > is,
>> > after doing all this initialization my interrupt handler doesn't gets
>> > invoked
>> > when my hardware raises an interrupt after the device moves into D0
>> > state
>> > eventhough all the interrupts has been enabled. I could notice that the
>> > framework has added the interrupt resource information to the interrupt
>> > object, by using WdfInterruptGetInfo() in the context of
>> > SelfManagedIoInit
>> > callback. Am I missing anything related with the interrupt handling?
>> >
>> > Thanks,
>> > Murugesan

>>
>> .
>>

 
Reply With Quote
 
Murugesan
Guest
Posts: n/a

 
      11-18-2009
Actually I am interested in performing initialization of h/w first, only
after which interrupt enabling comes into picture. That's why I did
everything in selfmanaged-io, instead of collapsing my sequence of operation
b/w EvtInterruptEnable, EvtDeviceD0EntryPostInterruptsEnabled & Selfmanaged
IO.

Does failing to enable interrupts in EvtInterruptEnable or
EvtDeviceD0EntryPostInterruptsEnabled callbacks makes the interrupt handler
not to be invoked ? Do they really have any relation ?


"Doron Holan [MSFT]" wrote:

> you should use EvtInterruptEnable and EvtDeviceD0EntryPostInterruptsEnabled
> for the work you are doing in self managed io
>
> d
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Murugesan" <> wrote in message
> news:7FE38A6D-FFDE-4D59-8537-...
> > Thanks for your inputs. I've programmed my h/w correctly. The only
> > variance
> > is like,
> > my h/w initialization & enabling interrupts has been done in the context
> > of
> > SelfManagedIoInit() callback, which is called after D0entry callback. Also
> > i
> > am sure that the framework retreived the interrupt resource
> > information(mainly IRQ) by checking with WdfInterruptGetInfo().
> >
> > Murugesan
> >
> > "Doron Holan [MSFT]" wrote:
> >
> >> are your programming your hw to generate the interrupt and route it
> >> correctly? are you programming your hw correctly in D0Entry?
> >>
> >> d
> >>
> >> --
> >>
> >> This posting is provided "AS IS" with no warranties, and confers no
> >> rights.
> >>
> >>
> >> "Murugesan" <> wrote in message
> >> news:70DE1BF5-1409-408C-B30F-...
> >> > Hi all,
> >> >
> >> > I am working with a PCI based WDF function driver. I've created an
> >> > interrupt object using wdfinterruptcreate() & initialized the
> >> > WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
> >> > documentation, i found that the framework takes care of adding
> >> > interrupt
> >> > resource information when the device moves into D0 state. Now the
> >> > problem
> >> > is,
> >> > after doing all this initialization my interrupt handler doesn't gets
> >> > invoked
> >> > when my hardware raises an interrupt after the device moves into D0
> >> > state
> >> > eventhough all the interrupts has been enabled. I could notice that the
> >> > framework has added the interrupt resource information to the interrupt
> >> > object, by using WdfInterruptGetInfo() in the context of
> >> > SelfManagedIoInit
> >> > callback. Am I missing anything related with the interrupt handling?
> >> >
> >> > Thanks,
> >> > Murugesan
> >>
> >> .
> >>

> .
>

 
Reply With Quote
 
Doron Holan [MSFT]
Guest
Posts: n/a

 
      11-20-2009
the kmdf callbacks are just an abstraction, you can choose to use the
abstraction or not. if you need to initialize before the interrupt is
enabled, do that in EvtDeviceD0Entry, enable the interrupt in
EvtInterruptEnable

d

--

This posting is provided "AS IS" with no warranties, and confers no rights.


"Murugesan" <> wrote in message
news20534EA-16EB-472D-9BDF-...
> Actually I am interested in performing initialization of h/w first, only
> after which interrupt enabling comes into picture. That's why I did
> everything in selfmanaged-io, instead of collapsing my sequence of
> operation
> b/w EvtInterruptEnable, EvtDeviceD0EntryPostInterruptsEnabled &
> Selfmanaged
> IO.
>
> Does failing to enable interrupts in EvtInterruptEnable or
> EvtDeviceD0EntryPostInterruptsEnabled callbacks makes the interrupt
> handler
> not to be invoked ? Do they really have any relation ?
>
>
> "Doron Holan [MSFT]" wrote:
>
>> you should use EvtInterruptEnable and
>> EvtDeviceD0EntryPostInterruptsEnabled
>> for the work you are doing in self managed io
>>
>> d
>>
>> --
>>
>> This posting is provided "AS IS" with no warranties, and confers no
>> rights.
>>
>>
>> "Murugesan" <> wrote in message
>> news:7FE38A6D-FFDE-4D59-8537-...
>> > Thanks for your inputs. I've programmed my h/w correctly. The only
>> > variance
>> > is like,
>> > my h/w initialization & enabling interrupts has been done in the
>> > context
>> > of
>> > SelfManagedIoInit() callback, which is called after D0entry callback.
>> > Also
>> > i
>> > am sure that the framework retreived the interrupt resource
>> > information(mainly IRQ) by checking with WdfInterruptGetInfo().
>> >
>> > Murugesan
>> >
>> > "Doron Holan [MSFT]" wrote:
>> >
>> >> are your programming your hw to generate the interrupt and route it
>> >> correctly? are you programming your hw correctly in D0Entry?
>> >>
>> >> d
>> >>
>> >> --
>> >>
>> >> This posting is provided "AS IS" with no warranties, and confers no
>> >> rights.
>> >>
>> >>
>> >> "Murugesan" <> wrote in message
>> >> news:70DE1BF5-1409-408C-B30F-...
>> >> > Hi all,
>> >> >
>> >> > I am working with a PCI based WDF function driver. I've created an
>> >> > interrupt object using wdfinterruptcreate() & initialized the
>> >> > WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
>> >> > documentation, i found that the framework takes care of adding
>> >> > interrupt
>> >> > resource information when the device moves into D0 state. Now the
>> >> > problem
>> >> > is,
>> >> > after doing all this initialization my interrupt handler doesn't
>> >> > gets
>> >> > invoked
>> >> > when my hardware raises an interrupt after the device moves into D0
>> >> > state
>> >> > eventhough all the interrupts has been enabled. I could notice that
>> >> > the
>> >> > framework has added the interrupt resource information to the
>> >> > interrupt
>> >> > object, by using WdfInterruptGetInfo() in the context of
>> >> > SelfManagedIoInit
>> >> > callback. Am I missing anything related with the interrupt handling?
>> >> >
>> >> > Thanks,
>> >> > Murugesan
>> >>
>> >> .
>> >>

>> .
>>

 
Reply With Quote
 
Murugesan
Guest
Posts: n/a

 
      11-23-2009
Thanks for your info Doron. I'll try that.

"Doron Holan [MSFT]" wrote:

> the kmdf callbacks are just an abstraction, you can choose to use the
> abstraction or not. if you need to initialize before the interrupt is
> enabled, do that in EvtDeviceD0Entry, enable the interrupt in
> EvtInterruptEnable
>
> d
>
> --
>
> This posting is provided "AS IS" with no warranties, and confers no rights.
>
>
> "Murugesan" <> wrote in message
> news20534EA-16EB-472D-9BDF-...
> > Actually I am interested in performing initialization of h/w first, only
> > after which interrupt enabling comes into picture. That's why I did
> > everything in selfmanaged-io, instead of collapsing my sequence of
> > operation
> > b/w EvtInterruptEnable, EvtDeviceD0EntryPostInterruptsEnabled &
> > Selfmanaged
> > IO.
> >
> > Does failing to enable interrupts in EvtInterruptEnable or
> > EvtDeviceD0EntryPostInterruptsEnabled callbacks makes the interrupt
> > handler
> > not to be invoked ? Do they really have any relation ?
> >
> >
> > "Doron Holan [MSFT]" wrote:
> >
> >> you should use EvtInterruptEnable and
> >> EvtDeviceD0EntryPostInterruptsEnabled
> >> for the work you are doing in self managed io
> >>
> >> d
> >>
> >> --
> >>
> >> This posting is provided "AS IS" with no warranties, and confers no
> >> rights.
> >>
> >>
> >> "Murugesan" <> wrote in message
> >> news:7FE38A6D-FFDE-4D59-8537-...
> >> > Thanks for your inputs. I've programmed my h/w correctly. The only
> >> > variance
> >> > is like,
> >> > my h/w initialization & enabling interrupts has been done in the
> >> > context
> >> > of
> >> > SelfManagedIoInit() callback, which is called after D0entry callback.
> >> > Also
> >> > i
> >> > am sure that the framework retreived the interrupt resource
> >> > information(mainly IRQ) by checking with WdfInterruptGetInfo().
> >> >
> >> > Murugesan
> >> >
> >> > "Doron Holan [MSFT]" wrote:
> >> >
> >> >> are your programming your hw to generate the interrupt and route it
> >> >> correctly? are you programming your hw correctly in D0Entry?
> >> >>
> >> >> d
> >> >>
> >> >> --
> >> >>
> >> >> This posting is provided "AS IS" with no warranties, and confers no
> >> >> rights.
> >> >>
> >> >>
> >> >> "Murugesan" <> wrote in message
> >> >> news:70DE1BF5-1409-408C-B30F-...
> >> >> > Hi all,
> >> >> >
> >> >> > I am working with a PCI based WDF function driver. I've created an
> >> >> > interrupt object using wdfinterruptcreate() & initialized the
> >> >> > WDF_INTERRUPT_CONFIG with ISR handler, DPC routine. From the WDF
> >> >> > documentation, i found that the framework takes care of adding
> >> >> > interrupt
> >> >> > resource information when the device moves into D0 state. Now the
> >> >> > problem
> >> >> > is,
> >> >> > after doing all this initialization my interrupt handler doesn't
> >> >> > gets
> >> >> > invoked
> >> >> > when my hardware raises an interrupt after the device moves into D0
> >> >> > state
> >> >> > eventhough all the interrupts has been enabled. I could notice that
> >> >> > the
> >> >> > framework has added the interrupt resource information to the
> >> >> > interrupt
> >> >> > object, by using WdfInterruptGetInfo() in the context of
> >> >> > SelfManagedIoInit
> >> >> > callback. Am I missing anything related with the interrupt handling?
> >> >> >
> >> >> > Thanks,
> >> >> > Murugesan
> >> >>
> >> >> .
> >> >>
> >> .
> >>

> .
>

 
Reply With Quote
 
 
 
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Windows 7 Home Premium 64bit - Floppy drive driver issue LDJ Windows 64 Bit 24 05-11-2010 05:32 PM
WDF Dma Transaction Issue Murugesan Windows Vista Drivers 5 11-23-2009 07:14 AM
Re: Routing & Remote Access issue Larry Struckmeyer[SBS-MVP] Windows Small Business Server 0 11-09-2009 05:57 PM
WMDC 6.1 & Vista RC SP1, sync issue Robert W ActiveSync 4 01-29-2008 07:53 AM
ACPI\PNPB02F Unknown device issue solution Copenhagen Windows Vista Hardware 4 07-22-2006 01:15 AM



1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59