Re: Windows 2000 driver, DPC for ISR without an IRP - memory access error

Thanks, I must check my sources more carefully. Maybe the DeviceObject->DPC
is not correctly set up, but this seems almost impossible, as it is done by
single system function call…

Rafal Gwizdala

----- Original Message -----
From: “Mark Roddy”
To: “NT Developers Interest List”
Sent: Friday, January 17, 2003 3:12 PM
Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
memory access error

> >
> > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an IRP
> > around.
> > The behaveour and mechanism is almost identical.
> >
>
> #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
>
> I don’t think that is the answer. The Irp is not required.
>
> ===========================
> Mark Roddy
> Consultant, Microsoft DDK MVP
> Hollis Technology Solutions
> xxxxx@hollistech.com
> www.hollistech.com
> 603-321-1032
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@poczta.onet.pl
> To unsubscribe send a blank email to xxxxx@lists.osr.com

Mark,

I am upset ( and even a bit angry ). There is no DDK documentation that
mentions your
#define IoRequestDpc”. The DDK documentation describes even a different,
more restrictive behaviour for the IoRequestDpc and a suggestion about the
use
of KeInsertQueueDpc.

If you have found this define at ReactOS, you could be far from the
Microsoft reality …

----- Original Message -----
From: “Mark Roddy”
To: “NT Developers Interest List”
Sent: Friday, January 17, 2003 3:12 PM
Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
memory access error

> >
> > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an IRP
> > around.
> > The behaveour and mechanism is almost identical.
> >
>
> #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
>
> I don’t think that is the answer. The Irp is not required.
>
> ===========================
> Mark Roddy
> Consultant, Microsoft DDK MVP
> Hollis Technology Solutions
> xxxxx@hollistech.com
> www.hollistech.com
> 603-321-1032
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Who needs ReactOs, for crying out loud?. It’s openly defined in the header
files included in the DDK. All one needs to do to find it for oneself is to
do a search.

Like my grandma said … “You can get glad int he same breath you go mad
in.”


Gary G. Little
Have Computer, Will Travel …
909-698-3191
909-551-2105

“Christiaan Ghijselinck” wrote in message
news:xxxxx@ntdev…
>
>
> Mark,
>
>
> I am upset ( and even a bit angry ). There is no DDK documentation that
> mentions your
> “#define IoRequestDpc”. The DDK documentation describes even a different,
> more restrictive behaviour for the IoRequestDpc and a suggestion about the
> use
> of KeInsertQueueDpc.
>
> If you have found this define at ReactOS, you could be far from the
> Microsoft reality …
>
>
> ----- Original Message -----
> From: “Mark Roddy”
> To: “NT Developers Interest List”
> Sent: Friday, January 17, 2003 3:12 PM
> Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
> memory access error
>
>
> > >
> > > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an IRP
> > > around.
> > > The behaveour and mechanism is almost identical.
> > >
> >
> > #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> > KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
> >
> > I don’t think that is the answer. The Irp is not required.
> >
> > ===========================
> > Mark Roddy
> > Consultant, Microsoft DDK MVP
> > Hollis Technology Solutions
> > xxxxx@hollistech.com
> > www.hollistech.com
> > 603-321-1032
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>
>
>
>

No, IoRequestDpc is really a macro, you can use KeInsertQueueDpc.
IRP is not necessary for a DPC.

Max

----- Original Message -----
From: “Christiaan Ghijselinck”
To: “NT Developers Interest List”
Sent: Friday, January 17, 2003 5:50 PM
Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
memory access error

>
> Mark,
>
>
> I am upset ( and even a bit angry ). There is no DDK documentation
that
> mentions your
> “#define IoRequestDpc”. The DDK documentation describes even a
different,
> more restrictive behaviour for the IoRequestDpc and a suggestion
about the
> use
> of KeInsertQueueDpc.
>
> If you have found this define at ReactOS, you could be far from the
> Microsoft reality …
>
>
> ----- Original Message -----
> From: “Mark Roddy”
> To: “NT Developers Interest List”
> Sent: Friday, January 17, 2003 3:12 PM
> Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an
IRP -
> memory access error
>
>
> > >
> > > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an
IRP
> > > around.
> > > The behaveour and mechanism is almost identical.
> > >
> >
> > #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> > KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
> >
> > I don’t think that is the answer. The Irp is not required.
> >
> > ===========================
> > Mark Roddy
> > Consultant, Microsoft DDK MVP
> > Hollis Technology Solutions
> > xxxxx@hollistech.com
> > www.hollistech.com
> > 603-321-1032
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as:
xxxxx@compaqnet.be
> > To unsubscribe send a blank email to
xxxxx@lists.osr.com
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Ok, you are all right. I only noticed the ( commented out ) definition of
the procedure
and did not look furtheron in the ntddk.h . Sorry for the incoveniences this
may have caused.
to all of you.

As a consequence, I will forget this superfluous “IoRequestDpc” and never
use it again …

----- Original Message -----
From: “Maxim S. Shatskih”
To: “NT Developers Interest List”
Sent: Friday, January 17, 2003 9:58 PM
Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
memory access error

> No, IoRequestDpc is really a macro, you can use KeInsertQueueDpc.
> IRP is not necessary for a DPC.
>
> Max
>
> ----- Original Message -----
> From: “Christiaan Ghijselinck”
> To: “NT Developers Interest List”
> Sent: Friday, January 17, 2003 5:50 PM
> Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
> memory access error
>
>
> >
> > Mark,
> >
> >
> > I am upset ( and even a bit angry ). There is no DDK documentation
> that
> > mentions your
> > “#define IoRequestDpc”. The DDK documentation describes even a
> different,
> > more restrictive behaviour for the IoRequestDpc and a suggestion
> about the
> > use
> > of KeInsertQueueDpc.
> >
> > If you have found this define at ReactOS, you could be far from the
> > Microsoft reality …
> >
> >
> > ----- Original Message -----
> > From: “Mark Roddy”
> > To: “NT Developers Interest List”
> > Sent: Friday, January 17, 2003 3:12 PM
> > Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an
> IRP -
> > memory access error
> >
> >
> > > >
> > > > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an
> IRP
> > > > around.
> > > > The behaveour and mechanism is almost identical.
> > > >
> > >
> > > #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> > > KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
> > >
> > > I don’t think that is the answer. The Irp is not required.
> > >
> > > ===========================
> > > Mark Roddy
> > > Consultant, Microsoft DDK MVP
> > > Hollis Technology Solutions
> > > xxxxx@hollistech.com
> > > www.hollistech.com
> > > 603-321-1032
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as:
> xxxxx@compaqnet.be
> > > To unsubscribe send a blank email to
> xxxxx@lists.osr.com
> > >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> To unsubscribe send a blank email to xxxxx@lists.osr.com
>

Hi,

As I started the discussion, I’d like to confess that there is no problem
with passing NULL IRP pointer to IoRequestDpc - now I’m using it quite
happily and it works in Win2K. The problem reported at the beginning was
caused by some ugly race condition in my driver, not by the kernel API. My
apologies…

Regards,
Rafal Gwizdala

----- Original Message -----
From: “Christiaan Ghijselinck”
To: “NT Developers Interest List”
Sent: Friday, January 17, 2003 10:53 PM
Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
memory access error

>
>
> Ok, you are all right. I only noticed the ( commented out ) definition
of
> the procedure
> and did not look furtheron in the ntddk.h . Sorry for the incoveniences
this
> may have caused.
> to all of you.
>
> As a consequence, I will forget this superfluous “IoRequestDpc” and never
> use it again …
>
>
> ----- Original Message -----
> From: “Maxim S. Shatskih”
> To: “NT Developers Interest List”
> Sent: Friday, January 17, 2003 9:58 PM
> Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
> memory access error
>
>
> > No, IoRequestDpc is really a macro, you can use KeInsertQueueDpc.
> > IRP is not necessary for a DPC.
> >
> > Max
> >
> > ----- Original Message -----
> > From: “Christiaan Ghijselinck”
> > To: “NT Developers Interest List”
> > Sent: Friday, January 17, 2003 5:50 PM
> > Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an IRP -
> > memory access error
> >
> >
> > >
> > > Mark,
> > >
> > >
> > > I am upset ( and even a bit angry ). There is no DDK documentation
> > that
> > > mentions your
> > > “#define IoRequestDpc”. The DDK documentation describes even a
> > different,
> > > more restrictive behaviour for the IoRequestDpc and a suggestion
> > about the
> > > use
> > > of KeInsertQueueDpc.
> > >
> > > If you have found this define at ReactOS, you could be far from the
> > > Microsoft reality …
> > >
> > >
> > > ----- Original Message -----
> > > From: “Mark Roddy”
> > > To: “NT Developers Interest List”
> > > Sent: Friday, January 17, 2003 3:12 PM
> > > Subject: [ntdev] Re: Windows 2000 driver, DPC for ISR without an
> > IRP -
> > > memory access error
> > >
> > >
> > > > >
> > > > > Queueing DPC’s with “KeInsertQueueDpc” do not require to have an
> > IRP
> > > > > around.
> > > > > The behaveour and mechanism is almost identical.
> > > > >
> > > >
> > > > #define IoRequestDpc( DeviceObject, Irp, Context ) ( <br>> > > > KeInsertQueueDpc( &(DeviceObject)->Dpc, (Irp), (Context) ) )
> > > >
> > > > I don’t think that is the answer. The Irp is not required.
> > > >
> > > > ===========================
> > > > Mark Roddy
> > > > Consultant, Microsoft DDK MVP
> > > > Hollis Technology Solutions
> > > > xxxxx@hollistech.com
> > > > www.hollistech.com
> > > > 603-321-1032
> > > >
> > > >
> > > >
> > > > —
> > > > You are currently subscribed to ntdev as:
> > xxxxx@compaqnet.be
> > > > To unsubscribe send a blank email to
> > xxxxx@lists.osr.com
> > > >
> > >
> > >
> > >
> > > —
> > > You are currently subscribed to ntdev as: xxxxx@storagecraft.com
> > > To unsubscribe send a blank email to xxxxx@lists.osr.com
> > >
> >
> >
> >
> > —
> > You are currently subscribed to ntdev as: xxxxx@compaqnet.be
> > To unsubscribe send a blank email to xxxxx@lists.osr.com
> >
>
>
>
> —
> You are currently subscribed to ntdev as: xxxxx@poczta.onet.pl
> To unsubscribe send a blank email to xxxxx@lists.osr.com