Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Handle interrupt in WDF

zviveredzvivered Member Posts: 35

Hello,

Long time ago I learned here to handle driver interrupts using the following concept:

  1. Application sends IOCTL request to the driver. This request is blocked with timeout.
  2. This request is forwarded to "internal" queue.
  3. Upon interrupt, the DPC handler reads from the "internal" queue and calls WdfRequestCompleteWithInformation
  4. At this point the application is not blocked anymore.

Can you please explain:
If another interrupt occurs after step 3 and before application is blocked again, how can I make sure not to miss an interrupt ?

Thank you,
Zvika

Comments

  • Tim_RobertsTim_Roberts Member - All Emails Posts: 13,229

    Well, that's not really the right question. Your driver won't miss an interrupt. If you want your application to catch all the notifications in real time, then you need to queue up several requests, using FILE_FLAG_OVERLAPPED. Easy.

    Tim Roberts, [email protected]
    Providenza & Boekelheide, Inc.

  • zviveredzvivered Member Posts: 35

    Hi Tim,

    Do you mean FILE_FLAG_OVERLAPPED in the application's file that sends IOCTLs ?

    Thank you,
    Zvika

  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 7,630

    Yes. That’s what he means.

    It’s trickier than Mr. Roberts is making it sound, though. While he’s (of course) correct that your driver won’t miss an interrupt, you must be aware of the fact that two calls to WdfInterruptQueueDpcForIsr can result in a single callback to that DpcForIsr.

    Have I mentioned before that you really need to take a seminar on writing WDF drivers? It’s just so hard to explain this stuff one isolated post at a time.

    Peter

    Peter Viscarola
    OSR
    @OSRDrivers

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Upcoming OSR Seminars
Kernel Debugging 30 Mar 2020 OSR Seminar Space
Developing Minifilters 20 Apr 2020 OSR Seminar Space & ONLINE
Writing WDF Drivers 11 May 2020 OSR Seminar Space & ONLINE
Internals & Software Drivers 28 Sept 2020 Dulles, VA