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

Home NTDEV

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: https://www.osr.com/osr-learning-library/


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 .

https://docs.microsoft.com/en-us/windows-hardware/drivers/ddi/wdm/nf-wdm-excreatecallback

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.

Comments

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

    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

    Peter Viscarola
    OSR
    @OSRDrivers

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!
Internals & Software Drivers 15 November 2021 Live, Online
Writing WDF Drivers 24 January 2022 Live, Online
Developing Minifilters 7 February 2022 Live, Online
Kernel Debugging 21 March 2022 Live, Online