Select the product you need help with
INFO: FILE_FLAG_WRITE_THROUGH e FILE_FLAG_NO_BUFFERINGID do artigo: 99794 - Exibir os produtos aos quais esse artigo se aplica. SumárioO sinalizador FILE_FLAG_WRITE_THROUGH para CreateFile() faz com que qualquer gravações feitas essa alça para sejam gravados diretamente o arquivo sem sendo armazenada em buffer. Os dados são armazenadas em cache (armazenado no cache de disco); no entanto, ele é ainda gravado diretamente no arquivo. Esse método permite que uma operação de leitura em que dados para satisfazer a solicitação de leitura de dados armazenados em cache (se ele ainda existe), em vez de ter para fazer um arquivo lido para obter os dados. A chamada de gravação não retornará até que os dados gravados no arquivo. Isso se aplica a remotas gravações bem--o redirecionador de rede passa o sinalizador FILE_FLAG_WRITE_THROUGH para o servidor para que o servidor sabe não para satisfazer a solicitação de gravação até que os dados gravados no arquivo. O FILE_FLAG_NO_BUFFERING leva esse conceito um passo mais e elimina todos os arquivo read-ahead buffer e cache de disco bem, para que todas as leituras são garantidas como vêm do arquivo e não de qualquer sistema buffer ou cache de disco. Ao usar FILE_FLAG_NO_BUFFERING, disco lê e grava deve ser feita nos limites do setor e buffer endereços devem ser alinhados nos limites do setor de disco na memória. Essas restrições são necessárias porque o buffer que você passar para a leitura ou gravação API é usado diretamente para E/s no nível do dispositivo; esse nível, as endereços de buffer e setor tamanhos devem satisfazer a quaisquer restrições de alinhamento de processador e mídia do hardware que você estiver executando em. Mais InformaçõesO Windows 95 CDFS (CD-ROM File System) não suporta o sinalizador FILE_FLAG_NO_BUFFERING para CreateFile(). Enquanto um FSD de 95 do Windows, como o VFAT, pode implementá-lo, FILE_FLAG_NO_BUFFERING não é um sinalizador necessário para drivers de sistema de arquivos e não é suportado por CDFS. Este fragmento de código demonstra como setor-Alinhar dados em um buffer e passá-lo para CreateFile(): Se você tiver uma situação onde você deseja liberar todos os arquivos na unidade lógica atual, isso pode ser feito: Ao abrir um arquivo remoto através da rede, o servidor armazena em cache sempre e ignora o sem sinalizador buffer especificado pelo cliente. Isso ocorre por design. O redirecionador e o servidor não podem implementar corretamente a semântica normal do FILE_FLAG_NO_BUFFERING através da rede. Em particular, o requisito para tamanho de setor, alinhado no setor de E/s não pode ser alcançado. Portanto, quando um aplicativo Win32-com base em solicita FILE_FLAG_NO_BUFFERING, redirecionador e servidor tratam isso como uma solicitação para FILE_FLAG_WRITE_THROUGH. O arquivo não é armazenado em cache no cliente, gravações vá diretamente para o servidor e para o disco no servidor e os tamanhos de leitura/gravação na rede são exatamente o que o aplicativo solicita. No entanto, o arquivo é armazenada em cache no servidor. O cliente de cache não pode ter um efeito diferente, dependendo do tipo de E/s. Você elimina os acertos do cache ou ler antecipadamente, mas você também pode reduzir o tamanho de transmite e recebe. Em geral, para E/s seqüencial, é uma boa idéia para armazenar em cache no cliente. Para pequeno, aleatório, acesso E/s, geralmente é melhor não armazenar em cache. PropriedadesID do artigo: 99794 - Última revisão: terça-feira, 21 de novembro de 2006 - Revisão: 4.2 A informação contida neste artigo aplica-se a:
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: 99794
(http://support.microsoft.com/kb/99794/en-us/
)
| Traduções deste artigo
|




Voltar para o início








