Hello,
Since NT (SP6a) does not define this macro, I was thinking of defining
it myself for my NT builds. The Win2K DDK defines this macro as follows:
#define IoSkipCurrentIrpStackLocation( Irp ) (Irp)->CurrentLocation++; (Irp)->Tail.Overlay.CurrentStackLocation++;
My question is: Do you think this is safe?
My driver is a TDI passthrough that resides above tcpip and below netbt.
My problem is that my internal dispatch routine detects CurrentLocation
== 1 on some TDI_DISCONNECT IOCTLs originated by netbt.
I couple threads from this newsgroup touched on this issue in the last
year. I am certain that my driver loads after tcpip and prior to netbt.
I don’t believe I have corrupted the IRP because I haven’t done anything
yet. I see StackSize == 3 and CurrentLocation == 1. My expectation is
that StackSize should equal 3 or 2 if netbt does not allocate space for
itself; and CurrentLocation should equal 2. My stack trace is
davedriver!TdiDisconnect
ntoskrnl!IofCallDriver
netbt!.text+000124CA
netbt!.text+ECCC
netbt!.text+EACA
netbt!.text+9411
Thanks,
Dave
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Yes.
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dave McCowan
Sent: Monday, November 05, 2001 1:03 PM
To: NT Developers Interest List
Subject: [ntdev] IoSkipCurrentIrpStackLocation
Hello,
Since NT (SP6a) does not define this macro, I was thinking of defining
it myself for my NT builds. The Win2K DDK defines this macro as follows:
#define IoSkipCurrentIrpStackLocation( Irp ) (Irp)->CurrentLocation++; (Irp)->Tail.Overlay.CurrentStackLocation++;
My question is: Do you think this is safe?
My driver is a TDI passthrough that resides above tcpip and below netbt.
My problem is that my internal dispatch routine detects CurrentLocation
== 1 on some TDI_DISCONNECT IOCTLs originated by netbt.
I couple threads from this newsgroup touched on this issue in the last
year. I am certain that my driver loads after tcpip and prior to netbt.
I don’t believe I have corrupted the IRP because I haven’t done anything
yet. I see StackSize == 3 and CurrentLocation == 1. My expectation is
that StackSize should equal 3 or 2 if netbt does not allocate space for
itself; and CurrentLocation should equal 2. My stack trace is
davedriver!TdiDisconnect
ntoskrnl!IofCallDriver
netbt!.text+000124CA
netbt!.text+ECCC
netbt!.text+EACA
netbt!.text+9411
Thanks,
Dave
You are currently subscribed to ntdev as: xxxxx@storagecraft.com To
unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
Yes. Nothing there is fundamentally different in this specific area
between w2k and nt4. Also the IoCopyCurrentIrpStackLocationToNext MACRO
FUNCTION (grrrrr…) should be retrofitted while you are at it.
Please do feel free to fix the side effect potential for the NTDDK
versions of IoSkipCurrentIrpStackLocation and
IoCopyCurrentIrpStackLocationToNext while you are porting them back to
nt4.
__inline void IoSkipCurrentIrpStackLocation(PIRP Irp)
{
Irp->CurrentLocation++;
Irp->Tail.Overlay.CurrentStackLocation++;
}
Works for me, but I digress and this topic is forbidden 
-----Original Message-----
From: xxxxx@lists.osr.com
[mailto:xxxxx@lists.osr.com] On Behalf Of Dave McCowan
Sent: Monday, November 05, 2001 4:03 PM
To: NT Developers Interest List
Subject: [ntdev] IoSkipCurrentIrpStackLocation
Hello,
Since NT (SP6a) does not define this macro, I was thinking of
defining it myself for my NT builds. The Win2K DDK defines
this macro as follows:
#define IoSkipCurrentIrpStackLocation( Irp ) > (Irp)->CurrentLocation++; > (Irp)->Tail.Overlay.CurrentStackLocation++;
My question is: Do you think this is safe?
My driver is a TDI passthrough that resides above tcpip and
below netbt. My problem is that my internal dispatch routine
detects CurrentLocation == 1 on some TDI_DISCONNECT IOCTLs
originated by netbt.
I couple threads from this newsgroup touched on this issue in
the last year. I am certain that my driver loads after tcpip
and prior to netbt. I don’t believe I have corrupted the IRP
because I haven’t done anything yet. I see StackSize == 3 and
CurrentLocation == 1. My expectation is that StackSize should
equal 3 or 2 if netbt does not allocate space for itself; and
CurrentLocation should equal 2. My stack trace is
davedriver!TdiDisconnect
ntoskrnl!IofCallDriver
netbt!.text+000124CA
netbt!.text+ECCC
netbt!.text+EACA
netbt!.text+9411
Thanks,
Dave
You are currently subscribed to ntdev as:
xxxxx@hollistech.com To unsubscribe send a blank email to
leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com
> Since NT (SP6a) does not define this macro, I was thinking of defining
it myself for my NT builds. The Win2K DDK defines this macro as follows:
#define IoSkipCurrentIrpStackLocation( Irp ) > (Irp)->CurrentLocation++; > (Irp)->Tail.Overlay.CurrentStackLocation++;
My question is: Do you think this is safe?
Yes, if you do not want to install a completion routine.
Max
You are currently subscribed to ntdev as: $subst(‘Recip.EmailAddr’)
To unsubscribe send a blank email to leave-ntdev-$subst(‘Recip.MemberIDChar’)@lists.osr.com