Re: Oney's Book, HandleQueryStop(): Why is there no race condition?

Tech-Archive recommends: Repair Windows Errors & Optimize Windows Performance

From: Mark Roddy (markr_at_hollistech.com)
Date: 05/09/04


Date: Sun, 9 May 2004 11:41:57 -0400

Over on the storage side of things, those of us with multipath storage
drivers (two paths to one disk) have to deal with this race condition on a
regular basis. We want to allow Q-remove or Q-stop on one path if another
path is available, but we want to fail the query if there is no other
available path. As 'available path' is an asynchronous state(1), managing
this is a bit tricky. The simplest approach is to just deny the query.
Unfortunately this results in the hideous 'reboot required' popup anytime a
new device instance enters the system. Other less conservative approaches
allow the query but leave the system vulnerable as the race condition cannot
be eliminated.

(1) for example somebody pulls a hotplug disk out of its slot.

-- 
=====================
Mark Roddy
Windows 2003/XP/2000 Consulting
Hollis Technology Solutions 603-321-1032
www.hollistech.com
markr@hollistech.com
"Bill McKenzie" <bill.mckenzie@nospam.conexant.com> wrote in message
news:eIIHcMLNEHA.556@tk2msftngp13.phx.gbl...
> > If there is need to stop the device, the driver should be
> > able to stop it from any state?
>
> Not true or there would be no reason to allow for the rejection of a stop
> through the query.  Example: the best I can think of at the moment is a
data
> collection or frame grabber type device in an industrial setting which
does
> not wish to allow stops while (lengthy) data transfers are in progress.
> This would seem a perfectly valid instance, albeit somewhat rare, in which
> to reject a stop query.
>
> There are probably plenty of industrial devices which take a significant
> amount of time to stop once set in motion, although a really good example
> escapes me at the moment.
>
> -- 
> Bill McKenzie
> Software Engineer - Prism 802.11 Wireless Solutions
> Conexant Systems, Inc.
>
>
> "Pavel A." <pavel_a@geeklife.com> wrote in message
> news:O0FK2RGNEHA.2736@TK2MSFTNGP11.phx.gbl...
> > Sorry for jumping in...
> > but what exactly means "non-stoppable state"?
> > If there is need to stop the device, the driver should be
> > able to stop it from any state?
> >
> > Regards,
> > --PA
> >
> >
> > "Bill McKenzie" <bill.mckenzie@nospam.conexant.com> wrote in message
> > news:OWFNKV4MEHA.3572@tk2msftngp13.phx.gbl...
> > > Good catch!  That is fairly subtle.
> > >
> > > -- 
> > > Bill McKenzie
> > > Software Engineer - Prism 802.11 Wireless Solutions
> > > Conexant Systems, Inc.
> > >
> > >
> > > "Spiro Trikaliotis" <nntp+200405@trikaliotis.net> wrote in message
> > > news:slrnc9k439.1mj.nntp+200405@news.trikaliotis.net...
> > >> Hello Walter,
> > >>
> > >> Walter Oney <waltoney@oneysoft.com> wrote:
> > >>
> > >> > I don't see how to solve the problem of StartNextPacket starting an
> > >> > IRP that will put the device into the non-stoppable state you've
> > >> > posited without doing something like you've suggested.
> > >>
> > >> Ok, thank you for your help!
> > >>
> > >> Kind regards,
> > >>    Spiro.
> > >>
> > >> -- 
> > >> Spiro R. Trikaliotis
> > >> http://www.trikaliotis.net/
> > >
> > >
> >
> >
>
>


Relevant Pages

  • RE: Calculating the cumulative totals for an ending result
    ... Your query fields do not correspond the sample data. ... FROM Odometer INNER JOIN Movement ON Odometer.Unit = Movement.Unit ... "KARL DEWEY" wrote: ... 'Business KM and Personal KM' per unit# with the driver for the month. ...
    (microsoft.public.access.queries)
  • Re: Order in bind variable for PreparedStatement in Java
    ... > I have a critical problem with a prepared query and bind variable in Java. ... > I am confused because it seems that the jdbc driver bind the variable ... > bind variables. ... > My Jdbc informix driver is 2.21.JC5 ...
    (comp.lang.java.databases)
  • Re: Object oriented method is inefficient with database calling
    ... amount of records a database query to the table t_car returns. ... record and leave the Driver property in the Car object aside. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Oracle parameter problem with OraOLEDB driver
    ... "Mick Board" wrote in message ... I am using this driver rather than the ... > I have a query which contains parameters, one of which is an integer. ... > query has its datasource value set to a datasource as it is the detail ...
    (borland.public.delphi.database.ado)
  • Re: USB to Virtual COM Port: Keeping COM Port Existing
    ... Bill McKenzie ... Conexant Systems, Inc. ... >>> I can think you could make this work is to have the driver that creates ... >>> driver communication with another driver that loads for your USB device ...
    (microsoft.public.development.device.drivers)