From: canopy49 on 27 Jul 2008 00:32 If at any time IOCTL_MINIPORT_PROCESS_SERVICE_IRP is sent to a storport miniport adapter FDO in Vista or Windows Server 2008, it causes removal to hang forever. I traced this down to storport! RaidAdapterDeviceControlIrp calls IoAcquireRemoveLock, but never calls IoReleaseRemoveLock each time this particular ioctl is received. This means at removal time when storport calls IoReleaseRemoveLockAndWait it hangs forever. Is there any possible workaround or chance this might be fixed?
From: canopy49 on 29 Jul 2008 11:08 Has anyone else tried writing a virtual miniport? This seems like a critical problem that would prevent it being possible. It is blocking our release and we don't know where to go.
From: chris.aseltine on 29 Jul 2008 14:31 On Jul 29, 10:08 am, canop...(a)gmail.com wrote: > Has anyone else tried writing a virtual miniport? This seems like a > critical problem that would prevent it being possible. It is blocking > our release and we don't know where to go. If you're certain this is an issue not with your code, I would open a ticket with PSS.
From: Alexander Grigoriev on 29 Jul 2008 22:26 Do you have HwStorCompleteServiceIrp routine? What your HwStorProcessServiceRequest looks like? Does it ever call IoCompleteRequest? <canopy49(a)gmail.com> wrote in message news:67a22c19-3e87-49cc-9cc8-053883fdc4bb(a)i20g2000prf.googlegroups.com... > If at any time IOCTL_MINIPORT_PROCESS_SERVICE_IRP is sent to a > storport miniport adapter FDO in Vista or Windows Server 2008, it > causes removal to hang forever. I traced this down to storport! > RaidAdapterDeviceControlIrp calls IoAcquireRemoveLock, but never calls > IoReleaseRemoveLock each time this particular ioctl is received. This > means at removal time when storport calls IoReleaseRemoveLockAndWait > it hangs forever. Is there any possible workaround or chance this > might be fixed?
From: canopy49 on 29 Jul 2008 23:26 On Jul 30, 9:26 am, "Alexander Grigoriev" <al...(a)earthlink.net> wrote: > Do you have HwStorCompleteServiceIrp routine? Yes, just a stub that doesn't do anything. It is the very last thing called before the hang. But not having this routine has no effect on the problem. VOID HwCompleteServiceIrp(PVOID DeviceExtension) { } > What your HwStorProcessServiceRequest looks like? > Does it ever call IoCompleteRequest? Even when very simple like below it fails. If this routine were somehow able to release the remove lock, it would solve the problem but I did not find a way to access this object. VOID HwProcessServiceRequest(IN PVOID DeviceExtension, IN PVOID Irp) { Irp->IoStatus.Status = STATUS_SUCCESS; IoCompleteRequest(Irp, IO_NO_INCREMENT); }
|
Next
|
Last
Pages: 1 2 Prev: SCSI miniport-Custom Log messages Next: Problem implementing non-solid brush in UNIDRV |