EvtIoStop and power-managed queue

Hello,

I am investigating an crash apparently caused by the Virtio Serial driver (vioser) which sometimes happens after a CPU/memory hotplug event when PnP Manager stops the serial devices, reassigns hardware resources and starts the devices again. It looks like a write queue on one of the serial devices gets corrupted between stopping and restarting the device.

Currently, my only suspect is the EvtIoStop callback for the write queue (VIOSerialPortWriteIoStop). The write request being the subject of the callback, may get completed at any moment (from a DPC) during execution of the callback and the documentation for EvtIoStop says the callback should get exclusive access to the request before doing anything with it.

  • I did a bit of searching on this forum and found out that calling WdfRequestStopAckowledge with the second parameter set to FALSE should be OK (I also learnt that the callback is not invoked for request not delivered to queue’s EvtIoWrite callback),
  • does this hold also for WdfRequestStopAcknowledge with the second parameter set to TRUE (which is what the driver is actually doing)?

Thank you for any help/clarification on this area.

Could you provide more info? Details on the “crash”? Does it occur within kmdf or in vioser? Which Windows version and hypervisor?

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.