Call stack deletion

Hello all,
Let me start by saying thank you in advance for any information you
all may be able to provide me. My problem is that I have written a Win2K
driver with a READ_MEMORY and a WRITE_MEMORY ioctls, among others. The
WRITE_MEMORY ioctl works just as it is suppose to. The READ_MEMORY on the
other hand does not. I have traced it through the driver using SoftIce
noticed that everything appears to be normal and all variables are getting
proper values from the device. The problem arises when I make a call to
DeviceIoControl() for READ_MEMORY, upon completion of DeviceIoControl(), I
have no call stack left. I guess the question is, Does anyone know if
anything that would cause the Driver to overwrite the call stack?
An added note: The call stack is valid after I call my
macro and at the instance that I return from my DeviceControl() function.
It disappears sometime before the application regains control. I have
seen this problem before, any help will be greatly appreciated.

Thank you again,

Michael Smith
Software Engineer
Lucent Technologies
101 Crawfords Corner Road
Holmdel, NJ 07733-3030
Phone: (732) 949-1686
Fax: (732) 949-5025