Windows System Software -- Consulting, Training, Development -- Unique Expertise, Guaranteed Results

Before Posting...
Please check out the Community Guidelines in the Announcements and Administration Category.

Re: Skipping IRP that I have been requestedDate: Thu, 10 Jun 2010 14:32:14 +0100

rod_widdowsonrod_widdowson Member - All Emails Posts: 971
> [sorry for my bad English:$]

You made yourself completely clear....

There is no sure-fire way of doing this, and usually if you need to know
this it is because of a bug in your code or architecture..

As an example, if you hold a MUTEX during a lower create you will not be
tolerant to that thread calling back through you. But it is considered
buggy to hold locks during lower operations (which is not to say that
sometimes you get forced into it...).

In your example, if the lower filter called FltCreate(Intance=NULL,...) then
it wants you to see that create - if it didn't it would have specified the
instance (modulo the long running bugs in the Operating system).

You have to find another way around your problem. Imagine that there was a
way of detecting what you describe. Now consider that instead of calling
FltCreate(Instance=NULL, ....) the lower filter poked a user program and
waited for it to complete. Consider what would happen if that user program
issues a NtCreateFile(). What are you going to do about that create?

What is the problem that you re trying to solve?

Comments

  • OSR_Community_UserOSR_Community_User Member Posts: 110,218
    THX rod,
    In my driver, I don't hold any resources so I am not worry about deadlock, but I wonder If a loop can occur and, if so, how to avoid it?

    THX again :).
  • OSR_Community_UserOSR_Community_User Member Posts: 110,218
    Ultimately, you cannot avoid recursion. You can detect it, but you can't entirely avoid it, since you don't have control over other components in the system.

    Tony
    OSR
Sign In or Register to comment.

Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!