#define IoGetCurrentIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation)
+#define IoGetPreviousIrpStackLocation(Irp) \
+ ((Irp)->Tail.Overlay.CurrentStackLocation+1)
+
#define IoSetNextIrpStackLocation(Irp) { \
(Irp)->CurrentLocation--; \
(Irp)->Tail.Overlay.CurrentStackLocation--; }
(Irp)->CurrentLocation++; \
(Irp)->Tail.Overlay.CurrentStackLocation++;
+#define IoSetPreviousIrpStackLocation(Irp) \
+ IoSkipCurrentIrpStackLocation(Irp)
+
+#define IoRetardCurrentIrpStackLocation(Irp) \
+ IoSkipCurrentIrpStackLocation(Irp)
+
struct _EPROCESS*
STDCALL
IoGetCurrentProcess (
#define IoSetCancelRoutine(Irp,NewCancelRoutine) \
((PDRIVER_CANCEL)InterlockedExchange((PULONG)&(Irp)->CancelRoutine, \
- (ULONG)(NewCancelRoutine)));
+ (ULONG)(NewCancelRoutine)))
#define IoSetCompletionRoutine(Irp,Routine,Context,Success,Error,Cancel) \
{ \