Hi,
I have my SCSI miniport drvier to make virtual drive under XP, it will invoke system thread (build with PsCreateSystemThread) for SCSIOP_READ/SCSIOP_WRITE in StartIO routine, after the job done it will send SRB_FUNCTION_IO_CONTROL (with IoBuildDeviceIoControlRequest and IoCallDriver pair) back to the SCSI context to do ScsiPortNotification(RequestComplete…), I use DriverObject->DeviceObject for that IoCallDriver, where DriverObject was got from DriverEntry, everything works find until resume from S3, the IoCallDriver doesn’t work and just hang. I even try IoRegisterPlugPlayNotification and call IoGetDeviceObjectPointer to get the miniport DeviceObject when my virtual drive arrived. But one thing can make it work, if my virtual drive had been accessed by Windows I mean open some folders and then close them, then the IoCallDriver will keep working after resume from S3, could anyone explain why? Thanks.