IoRegisterPlugPlayNotification() registered callback being called at IRQL APC_LEVEL RRS feed

  • Question

  • Hi All.  The docs for IoRegisterPlugPlayNotification state that
    CallbackRoutine [in]	The PnP manager calls driver callback routines at IRQL = PASSIVE_LEVEL.

    I'm running verifier on a kmdf driver that uses WdfUsbTargetDeviceSendControlTransferSynchronously() called from a notification callback and verifier is rightfully complaining that IRQL is too high for the api (> PASSIVE).  The IRQL when the callback is registered is PASSIVE but the callback is happening at APC_LEVEL.  I could use a workitem to PASSIVEly call WdfUsbTargetDeviceSendControlTransferSynchronously() but that sort of defeats the purpose of using the simple synchronous call model of that api.  

    Ay thoughts?


    • Edited by Wade_Dawson Saturday, April 23, 2016 2:56 AM
    Saturday, April 23, 2016 2:56 AM


  • are you acquiring any locks or entering any crucial regions? any of these can raise IRQL

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

    • Marked as answer by Wade_Dawson Monday, April 25, 2016 5:47 PM
    Saturday, April 23, 2016 7:05 AM