I'm not sure if mine is a windows question or a C++/MFC question, but it is making me crazy. I am trying to solve a problem where a drive spins down "at a bad time". It occurs during a game, where a 3-second delay is a real problem. I tried writing a little program to determine how reading cached data affects when a drive powers down. Right now, I cannot seem to get the drive to power up when I expect it to. I have a hard drive with a 32MB cache. I first create a 1mb reference file and 1024 more files of the same size. All 1025 files have 1MB strings of random characters and the strings of characters are different from each other, My intention is to fill the files with data that cannot easily be compressed. I then read each of the 1024 files 3 times, leaving the first file untouched. My intention is to make sure that whatever cache there is does not contain anything related to my first file. BTW, after writing each file, I delete the CFile object. The program then loops through a process, where it tests the power state of the drive every second until it spins down. I then read the original file, thinking that the drive will need to power up to retrieve the data. The drive does read the data into the buffer (1024 reads of 1024 characters), but the drive is still powered down. If I try to do anything else, like delete the files, I can hear the drive power up. I have no idea where the data came from. Any ideas?

Thank you.