Re: IoSkipCurrentIrpStackLocation() design flaw?



On Thu, 21 Sep 2006 06:37:08 +0400, "Maxim S. Shatskih"
<maxim@xxxxxxxxxxxxxxxx> wrote:

-- For instance, the basic problem with my original question about
IoSkipCurrentIrpStackLocation() was a race that if not handled with
both an outer reference and an inner remove lock could cause arbitrary
code to be executed or an IRP to be lost and never completed. --

Such races the the headache of the originator of the IRP, not of the drivers
below which execute this IRP.

I should be clear to differentiate my objection to whether originators
should do this from my question about whether all current originators
do. The problem isn't just proposing a set of conventions. It's
figuring out what conventions have been established over the years.
The remove lock discussion in the WDM book mentioned a few odd cases
in this area.

I want to know what to do in my own driver not just so that I can
blame the OS or someone else when it crashes, but so that I can
predict some reasonable possibilities for what they might do and
prevent the crash from ever happening.

.



Relevant Pages

  • Re: IoSkipCurrentIrpStackLocation() design flaw?
    ... IoSkipCurrentIrpStackLocationwas a race that if not handled with ... both an outer reference and an inner remove lock could cause arbitrary ... Such races the the headache of the originator of the IRP, ... below which execute this IRP. ...
    (microsoft.public.development.device.drivers)
  • Re: a few issues with events
    ... the compiler or JIT engine should always be able to check if a thing is null and just not execute the code using the null reference. ... Of course, this would lead to problems where code silently fails when a reference is null, in many cases simply not executing code that's very important to execute. ... you should never lock on "this" anyway. ... If you want a thread blocked on Jointo process messages, you will probably have to use p/invoke to get at the SendMessagefunction directly, and also override the WndProc method in your Form class so that you can receive the message sent by SendMessage. ...
    (microsoft.public.dotnet.languages.csharp)
  • Re: Fwd: [HP3000-L] Max Extents and Extents size from intrinsic FFILEINFO
    ... EXECUTE: FALSE ... APPEND: FALSE ... LOCK: FALSE ... * To join/leave the list, search archives, change list settings, * ...
    (comp.sys.hp.mpe)
  • Re: access() is a security hole?
    ... > Perhaps the way to avoid the race is to open the file, lock it, ... I know--there's a possible race between openand fcntl. ... of symlinks, you can parse the pathname, using open,fstat,fchdir ...
    (FreeBSD-Security)
  • Re: windows (vb.net 1.1) service - threading issue
    ... new thread seems to try and also tries to execute Timer1.Stop. ... End Sub ... SyncLock in this way? ... enters the lock, and never exits - then yes, you could deadlock. ...
    (microsoft.public.dotnet.languages.vb)