GetDrives requires the callback function to push something to the stack and will pop after your callback returns. If you push "StopGetDrives" then the drive enumeration is aborted, otherwise it continues if there are more drives.
You should not expect your stack changes to survive if they are in a callback function like this and the number of pushes depends on how many drives the end-user has in this case...