ID do artigo: 202071 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 4.1

PROBLEMA: Troubleshooting MoveFileEx() MOVEFILE_DELAY_UNTIL_REBOOT

Dica do SistemaEste artigo aplica-se a um sistema operativo diferente do que está a utilizar. Foi desactivado o conteúdo do artigo, que pode não ser relevante para si.
Expandir tudo | Recolher tudo

Sintomas

Quando você chamar MoveFileEx() com o sinalizador MOVEFILE_DELAY_UNTIL_REBOOT, às vezes, o sistema pode não renomear o arquivo especificado ou o diretório com êxito durante a reinicialização.

Resolução

Para solucionar esse problema, verifique primeiro se o local do arquivo ou pasta a ser renomeado está armazenado no seguinte valor do registro após a chamada MoveFileEx():
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager\PendingFileRenameOperations
				
o sistema usa esse valor do Registro para concluir a operação de movimentação na reinicialização. Quando a chamada MoveFileEx() tiver êxito, esse valor do registro é criado. Para o sinalizador MOVEFILE_DELAY_UNTIL_REBOOT, o processo de chamada precisa estar no contexto de um usuário que pertença ao grupo de administradores ou a conta LocalSystem. Por padrão, somente administradores e sistema local têm acesso de gravação para o
     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Session Manager
				
chave do registro onde o valor PendingFileRenameOperations é criado.

Se o arquivo de destino ou o diretório já existe e tiver que ser substituído, o sinalizador MOVEFILE_REPLACE_EXISTING também precisa ser especificado junto com o sinalizador MOVEFILE_DELAY_UNTIL_REBOOT quando MoveFileEx() é chamado. Caso contrário, a operação de movimentação falhará sem qualquer mensagem de erro quando o sistema for reiniciado.

Se o arquivo de origem ou pasta estiver em uma unidade NTFS, a conta LocalSystem ou administradores precisa ter permissão de acesso de exclusão na fonte para a operação de mudança seja bem-sucedida.

Se todas as seguintes condições forem atendidas, o sistema moverá o arquivo de origem ou o diretório com êxito durante a reinicialização quando o Gerenciador de sessão é inicializado.

A informação contida neste artigo aplica-se a:
  • Interface de Programação de Aplicativos do Microsoft Win32 nas seguintes plataformas
    • Microsoft Windows NT 4.0
    • the operating system: Microsoft Windows 2000
    • the operating system: Microsoft Windows XP
Palavras-chave: 
kbmt kbapi kbfileio kbkernbase kbprb KB202071 KbMtpt
Tradução automáticaTradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 202071  (http://support.microsoft.com/kb/202071/en-us/ )