É possível renomear um arquivo atômico (com sobrescrever) no Windows?

Nos sistemas POSIX, renomear (2) fornece uma operação de renomeação atômica, incluindo sobrescrever o arquivo de destino se ele existir e se as permissões permitirem.

Existe alguma maneira de obter a mesma semântica no Windows? Eu sei sobre MoveFileTransacted () no Vista e Server 2008, mas eu preciso disso para suportar Win2k e para cima.

A palavra chave aqui éatômico... a solução não deve ser capaz de falhar de qualquer maneira que deixe a operação em um estado inconsistente.

Eu vi muitas pessoas dizerem que isso é impossível no win32, mas eu pergunto, é mesmo?

Por favor, forneça citações confiáveis, se possível.

questionAnswers(6)

yourAnswerToTheQuestion