ReadFile retorna "ACCESS_DENIED" mensagem de erro durante a continuação

Traduções deste artigo Traduções deste artigo
ID do artigo: 811693 - Exibir os produtos aos quais esse artigo se aplica.
Este artigo foi arquivado. É oferecido "como está" e não será mais atualizado.
Expandir tudo | Recolher tudo

Sintomas

Aplicativos que estão lendo a tabela de alocação de arquivo (FAT) com base dispositivos de armazenamento no momento de um currículo receberá a seguinte mensagem de erro do sistema de arquivos:
ERROR_ACCESS_DENIED (0 X 00000005)
Isso ocorre Embora o arquivo tem permissão de compartilhamento e acesso apropriado.

Exemplos de mídia de armazenamento que freqüentemente usam o sistema de arquivos FAT no Pocket PC 2002 são a ATA de placa PCMCIA PC, a placa de armazenamento Compact Flash (FC) e o cartão de memória Secure Digital (SD).

Esse comportamento é observado ao usar Pocket PC 2002 adaptação Kit Update 4 (AKU4) e posterior.

Causa

O código de erro é uma indicação de que o dispositivo não está pronto para acessar. Normalmente, esse problema ocorre porque drivers para dispositivos de armazenamento removível com base em FAT são descarregados e recarregados no currículo, que requer um curto período de tempo para ser concluída. Se ocorrer um acesso de leitura durante esse período, o código de erro é retornado pelo sistema de arquivos. Uma correção foi introduzida no AKU4 para impedir que o dispositivo deslocado quando o dispositivo é acessado imediatamente após reiniciar, e o novo comportamento esperado é para retornar esse código de erro.

Resolução

Aplicativos podem manipular nessa situação, detectando o código de erro específico ao ler um arquivo de cartão de armazenamento e, em seguida, tentar novamente por um curto período até que o dispositivo está pronto. A seguir está um fragmento de código de exemplo C que demonstra esse conceito:
while ( !WriteFile( hFile, achBuffer, dwBytesRequested, &dwBytesReturned, 0 ) && 
        ( ERROR_ACCESS_DENIED == GetLastError() ) )
{
    // Access Denied: Maybe the file system is not ready yet.
    tries++;
    if ( tries > 4 )
        break;
    Sleep(500);
}
// It has been a few seconds.  The file cannot be accessed.

você pode usar a mesma abordagem para outras linguagens de programação. Para aplicativos que acessam a placa de armazenamento por meio de bibliotecas de middleware que não fornecem acesso direto para o sistema de arquivos, talvez você precise implementar transacional ou bloquear métodos de verificação para obter transferência confiável de dados em um currículo de suspensão.

Situação

Esse comportamento é por design.

Mais Informações

Alguns aplicativos Microsoft não tente novamente quando o sistema de arquivos não está pronto e retornará uma mensagem de erro que indica que a leitura falhou. Arquivo Explorer é um desses aplicativos. Quando esse problema ocorre no Gerenciador de arquivos, você receber a seguinte mensagem de erro:
Não é possível copiar ' FileName ': acesso negado. Certifique-se o disco não está cheio ou protegido contra gravação e o arquivo não está em uso.

Propriedades

ID do artigo: 811693 - Última revisão: sábado, 26 de outubro de 2013 - Revisão: 2.2
A informação contida neste artigo aplica-se a:
  • Microsoft Pocket PC 2002 Software Standard Edition
Palavras-chave: 
kbnosurvey kbarchive kbmt kberrmsg kbprb KB811693 KbMtpt
Traduçã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: 811693

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com