Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

storport.sys bug

77 views
Skip to first unread message

cano...@gmail.com

unread,
Jul 27, 2008, 12:32:23 AM7/27/08
to
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?

cano...@gmail.com

unread,
Jul 29, 2008, 11:08:54 AM7/29/08
to
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.

chris.a...@gmail.com

unread,
Jul 29, 2008, 2:31:45 PM7/29/08
to

If you're certain this is an issue not with your code, I would open a
ticket with PSS.

Alexander Grigoriev

unread,
Jul 29, 2008, 10:26:30 PM7/29/08
to
Do you have HwStorCompleteServiceIrp routine? What your
HwStorProcessServiceRequest looks like? Does it ever call IoCompleteRequest?

<cano...@gmail.com> wrote in message
news:67a22c19-3e87-49cc...@i20g2000prf.googlegroups.com...

cano...@gmail.com

unread,
Jul 29, 2008, 11:26:00 PM7/29/08
to
On Jul 30, 9:26 am, "Alexander Grigoriev" <al...@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);
}

bkro...@gmail.com

unread,
Aug 4, 2008, 9:22:27 AM8/4/08
to
Yes, I can confirm that is a problem. But it is not a show stopper.
Have a look at this Vminiport sample: http://www.perisoft.net/miniport/index.htm

cristalink

unread,
Aug 19, 2008, 11:28:55 PM8/19/08
to
Do you use StorPortCompleteServiceIrp() to complete the IRPs?


<cano...@gmail.com> wrote in message
news:67a22c19-3e87-49cc...@i20g2000prf.googlegroups.com...

0 new messages