snippet from Filemon:
currIrpStack = IoGetCurrentIrpStackLocation(Irp);
nextIrpStack = IoGetNextIrpStackLocation(Irp);
*nextIrpStack = *currIrpStack;
nextIrpStack->DeviceObject = DevExt->NextDeviceObject;
IoSetNextIrpStackLocation( Irp );
FastIoDispatch->FastIoQueryOpen(…);
Irp->CurrentLocation++;
Irp->Tail.Overlay.CurrentStackLocation++;
snippet from sfilter:
currIrpStack = IoGetCurrentIrpStackLocation( Irp )
currIrpStack->DeviceObject = nextDeviceObject;
FastIoDispatch->FastIoQueryOpen(…);
irpSp->DeviceObject = DeviceObject;
which strategy to follow?