If the line counts are constant you could do the reverse:
grep -B 3 "(E:|D:)" input.txt | grep Shadow
Now that's cool, each case has to be separate so grep -B 3 "D:" input.txt or even the actual volume string for certainties sake is the ticket!
Thanks Nate and Bill! jlc