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


More Info on Driver Writing and Debugging

The free OSR Learning Library has more than 50 articles on a wide variety of topics about writing and debugging device drivers and Minifilters. From introductory level to advanced. All the articles have been recently reviewed and updated, and are written using the clear and definitive style you've come to expect from OSR over the years.

Check out The OSR Learning Library at:

Before Posting...

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

Callback Object behavior in hibernate

leoleo Member Posts: 29

Had a question regarding usage of callback objects to communicate between two drivers . I have driver A and B , and A needs to notify B of some event during boot up and resume from hibernate .

What we do is both drivers call ExCreateCallback on same device object name during boot once and driver A notifies driver B as part of its D0Entry .
I wanted to ask what the behavior would be in below scenario.

  1. Driver A and Driver B both are in hibernate (D3 state)
  2. Driver A resumes from hibernate first ,gets D0 entry and notifies all registered clients for the callback object by calling ExNotifyCallback within its D0entry routine.
    Driver B still is in D3 right now, hasn't begun resume process .
  3. Driver B gets its D0 entry now.
    Had two question in this scenarios
    A . Are these callback routine dependent on driver D0 states , what I mean to ask is will Driver B have its registered callback routine invoked if Driver A notifies even before driver B has
    moved to D0 state?
    B . If the answer to above is yes then will driver B "miss" processing the notification from driver A since even though its callback was invoked it wasn't in D0 state when this happened.


  • Peter_Viscarola_(OSR)Peter_Viscarola_(OSR) Administrator Posts: 8,793

    Are these callback routine dependent on driver D0 states

    No, they are not.

    They are, in fact, entirely unaware of the D State of your device. You can “know” (or, “suppose”) this by the fact that these are WDM calls in your WDF driver. D State management of your device is handled in WDF.


    Peter Viscarola

Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. Sign in or register to get started.

Upcoming OSR Seminars
OSR has suspended in-person seminars due to the Covid-19 outbreak. But, don't miss your training! Attend via the internet instead!
Writing WDF Drivers 24 January 2022 Live, Online
Internals & Software Drivers 7 February 2022 Live, Online
Kernel Debugging 21 March 2022 Live, Online
Developing Minifilters 23 May 2022 Live, Online