-Added some irp stack macros (IoSetPreviousIrpStackLocation, IoGetPreviousIrpStackLocation, IoRetardIrpStackLocation). (Thanks to Gunnar Andr� Dalsnes)

svn path=/trunk/; revision=4066
This commit is contained in:
Hartmut Birr 2003-01-25 16:01:49 +00:00
parent 4b68ac00e4
commit 8b9d426c26

View file

@ -1,6 +1,6 @@
#ifndef _INCLUDE_DDK_IOFUNCS_H #ifndef _INCLUDE_DDK_IOFUNCS_H
#define _INCLUDE_DDK_IOFUNCS_H #define _INCLUDE_DDK_IOFUNCS_H
/* $Id: iofuncs.h,v 1.35 2002/10/05 10:53:36 dwelch Exp $ */ /* $Id: iofuncs.h,v 1.36 2003/01/25 16:01:49 hbirr Exp $ */
/* --- EXPORTED BY NTOSKRNL --- */ /* --- EXPORTED BY NTOSKRNL --- */
@ -613,6 +613,9 @@ IoGetConfigurationInformation (
#define IoGetCurrentIrpStackLocation(Irp) \ #define IoGetCurrentIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation) ((Irp)->Tail.Overlay.CurrentStackLocation)
#define IoGetPreviousIrpStackLocation(Irp) \
((Irp)->Tail.Overlay.CurrentStackLocation+1)
#define IoSetNextIrpStackLocation(Irp) { \ #define IoSetNextIrpStackLocation(Irp) { \
(Irp)->CurrentLocation--; \ (Irp)->CurrentLocation--; \
(Irp)->Tail.Overlay.CurrentStackLocation--; } (Irp)->Tail.Overlay.CurrentStackLocation--; }
@ -630,6 +633,12 @@ IoGetConfigurationInformation (
(Irp)->CurrentLocation++; \ (Irp)->CurrentLocation++; \
(Irp)->Tail.Overlay.CurrentStackLocation++; (Irp)->Tail.Overlay.CurrentStackLocation++;
#define IoSetPreviousIrpStackLocation(Irp) \
IoSkipCurrentIrpStackLocation(Irp)
#define IoRetardCurrentIrpStackLocation(Irp) \
IoSkipCurrentIrpStackLocation(Irp)
struct _EPROCESS* struct _EPROCESS*
STDCALL STDCALL
IoGetCurrentProcess ( IoGetCurrentProcess (
@ -928,7 +937,7 @@ IoReportResourceUsage (
#define IoSetCancelRoutine(Irp,NewCancelRoutine) \ #define IoSetCancelRoutine(Irp,NewCancelRoutine) \
((PDRIVER_CANCEL)InterlockedExchange((PULONG)&(Irp)->CancelRoutine, \ ((PDRIVER_CANCEL)InterlockedExchange((PULONG)&(Irp)->CancelRoutine, \
(ULONG)(NewCancelRoutine))); (ULONG)(NewCancelRoutine)))
#define IoSetCompletionRoutine(Irp,Routine,Context,Success,Error,Cancel) \ #define IoSetCompletionRoutine(Irp,Routine,Context,Success,Error,Cancel) \
{ \ { \