ID do artigo: 68827 - Última revisão: quinta-feira, 30 de outubro de 2003 - Revisão: 2.0

Atualizar cache particular perfis (arquivos de inicialização)

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

Sumário

Em Windows versão 3.1, na primeira vez que um perfil particular (arquivo de inicialização) é acessado, o sistema irá chamar a API GetFileTime() e armazenar esse valor. A API WriteProfileString() irá chamar a API GetFileTime() e comparar o valor de retorno para o valor armazenado. Se os dois valores coincidirem, o arquivo será considerado válido por dois segundos. A função faz as alterações e grava o conteúdo novo disco. Se os dois valores não corresponderem, o perfil é reler em um buffer e a alteração é feita. O mesmo princípio se aplica para ler valores de um perfil particular.

O raciocínio por trás o limite de segundo duas é que a maioria dos aplicativos ler particulares perfis em um intermitente, na inicialização do aplicativo e escrever em um intermitente, no encerramento do aplicativo. A penalidade de uma leitura em uma seqüência de leitura vinte é considerada aceitável, dadas as vantagens.

No Windows versão 3.0, um aplicativo que tenha um perfil particular não responderá às alterações feitas a esse perfil particular por um editor de texto. Quando um editor de texto atualiza um perfil particular, o arquivo no disco é modificado. No entanto, GetPrivateProfileString() e GetPrivateProfileInt() não lêem do arquivo de disco, em vez disso, as funções ler de uma cópia do arquivo em um cache. WritePrivateProfileString() atualizará as seções apropriadas no arquivo em cache e o arquivo de disco, no entanto, as funções serão não recarregar o arquivo de disco no cache, a menos que todo o cache é invalidado. As informações incluídas abaixo descreve como forçar um perfil particular a ser recached de um arquivo de disco.

Mais Informações

Windows armazena em cache arquivos .ini para reduzir o tempo de acesso. Esse design permite que o arquivo permanecem na memória até que um arquivo .ini diferente é carregado ou até que um aplicativo força recaching do arquivo.

Para forçar um arquivo .ini para ser recached, verifique a seguinte chamada (onde <fname.ini> é o nome do perfil particular do aplicativo):
   WritePrivateProfileString(NULL, NULL, NULL, <fname.ini>)
				
esta chamada forçará o arquivo .ini inteiro que está no cache sejam invalidados. A próxima chamada GetPrivateProfileString() ou GetPrivateProfileInt() será fazer com que o arquivo de disco ser recached.

Enquanto arquivos .ini são armazenadas em cache para otimizar o tempo de acesso, a seguir estão exemplos de como e quando um arquivo .ini pode ser recached.

  1. O aplicativo foi possível atualizar o cache do disco cada vez que o aplicativo requer informações de perfil. Chamar a função WritePrivateProfileString conforme descrito acima deve limpar o cache.

    Observação: Como o arquivo é recached com cada acesso, o benefício do cache é perdido com esse método.
  2. Crie um programa separado ou função que o usuário deve chamar explicitamente invalidar o cache. A seguir está um código para essa finalidade pode ser colocada em aplicativo de exemplo GENERIC fornecido com o Windows Software Development Kit (SDK):
       BOOL InitInstance(HANDLE hInstance, int nCmdShow)
       {
          LPSTR lpApplicationName, lpKeyName, lpDefault, lpReturnedString;
    
          int   nSize;
    
          /* initialize variables */ 
          ...
    
          WritePrivateProfileString(NULL, NULL, NULL, "MY.INI");
          GetPrivateProfileString(lpApplicationName, lpKeyName,
             lpDefault, lpReturnedString, nSize, "MY1.INI");
          MessageBox(NULL, "Cache Refreshed", szApp,
             MB_ICONINFORMATION | MB_OK);
          return TRUE;
       }
    						
    usando um programa ou a função assim será fará o arquivo .ini ser recached somente quando ele for alterado por um editor, portanto, a vantagem do cache será mantido. No entanto, é necessário para o usuário chamar outro aplicativo ou função depois que o perfil é alterado com um editor.
  3. Se nenhuma dessas técnicas for adequada, o aplicativo pode verificar o carimbo de data e hora no arquivo .ini antes de cada acesso para ver se invalidação de cache é necessária. Essa opção oferece os benefícios do cache sem exigir que o usuário chamar outro programa. A sobrecarga necessária para ler o carimbo de data e hora é mínimo se comparado recaching o arquivo com todas as chamadas a funções a GetPrivateProfileString ou GetPrivateProfileInt.

A informação contida neste artigo aplica-se a:
  • Microsoft Windows Software Development Kit 3.0
  • Microsoft Windows Software Development Kit 3.1
Palavras-chave: 
kbmt kb16bitonly KB68827 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: 68827  (http://support.microsoft.com/kb/68827/en-us/ )
Retired KB ArticleAviso de Isenção de Responsabilidade sobre Conteúdo do KB Aposentado
Este artigo trata de produtos para os quais a Microsoft não mais oferece suporte. Por esta razão, este artigo é oferecido "como está" e não será mais atualizado.