Re: [Question!] IRP... and IOCTL..., synchronous opeartion...

I had a little trouble following exactly what you wanted to do.
However, you can always PEND IRPs and then post them later.
You can have a Kernel Thread that sends new IRPs to the lower
driver (or forwards current IRP) and then you can get notification
when those are done.

Posting a pending IOCTL IRP from an application with the saved data when
an IRP comes through is no big deal and handing the data off to a second
IOCTL IRP from the IRP you processed is also no big deal.

I have an situation where I PEND incoming IRPs and do quite a few
additional IRPs to several other device objects before I post the
initial IRP.

Obviously, you have to consider CANCEL IO operations.

I hope this helps.

Rick Cadruvi…


i want to realize this routine… is it possible?

write in detail…
is it possible that i realize synchronous operation?

  1. when IRP_MJ_XXX occurs, the driver saves some value to the variable.

  2. application gets the value from the driver.
    (a thread in the application send IOCTL_GET_XXX constantly, )

when the thread gets the value, it send other packet to the driver.
(the packet may be IOCTL_SET_XXX)

  1. when the driver gets IOCTL_SET_XXX, it save the value to the variable.

IRP_MJ_XXX occurs in 2~3 times,
but i want to realize below;

>when the first IRP_MJ_XXX occurs, application get the value that the
driver saves.
>and when the driver gets other value from the application,
if the value is valid, the driver pass the next IRP_MJ_XXX to below
or the driver will not pass the the second IRP_MJ_XXX.

i want to know synchronous operation in driver and application…

help or advise me…