DeleteFile kończy się niepowodzeniem w ostatnio zamkniętym pliku

Mam program z jednym wątkiem (C ++, Win32, NTFS), który najpierw tworzy dość długi plik tymczasowy, zamyka go, otwiera do odczytu, odczytuje, zamyka ponownie i próbuje usunąć za pomocąDeleteFile().

Zwykle idzie gładko, ale czasamiDeleteFile() nie, iGetLastError() zwraca ERROR_ACCESS_DENIED. Plik z pewnością nie jest tylko do odczytu. Dzieje się tak na plikach o dowolnym rozmiarze, ale prawdopodobieństwo rośnie wraz z rozmiarem pliku.

Jakieś pomysły, co może blokować plik? Próbowałem narzędzi WinInternals, aby sprawdzić i nie znalazłem niczego podejrzanego.

questionAnswers(7)

yourAnswerToTheQuestion