Artigo: 99794 - Última revisão: terça-feira, 21 de Novembro de 2006 - Revisão: 4.2 INFO: FILE_FLAG_WRITE_THROUGH e FILE_FLAG_NO_BUFFERING
SumárioO sinalizador FILE_FLAG_WRITE_THROUGH para CreateFile() faz com que as escritas efectuadas a esse identificador sejam escritos directamente para o ficheiro sem ser armazenada em buffer. Colocados em dados é cache (armazenados na cache de disco); no entanto, ainda são escrito directamente para o ficheiro. Este método permite uma operação de leitura nesses dados para satisfazer o pedido de leitura de dados em cache (se ainda existe), em vez de ter para executar um ficheiro de leitura para obter os dados. A chamada de escrita não devolve até que os dados são escritos o ficheiro. Isto aplica-se a bem escritas remotos--o redireccionador de rede transmite o sinalizador FILE_FLAG_WRITE_THROUGH para o servidor para que o servidor sabe não para satisfazer o pedido de escrita até que os dados são escritos o ficheiro. O FILE_FLAG_NO_BUFFERING tem este conceito um passo mais e elimina todos os ficheiros leitura antecipada memória intermédia e disco em cache, para que todas as leituras garantidas que vem a partir do ficheiro e não de qualquer memória intermédia de sistema ou a cache de disco. Quando utilizar FILE_FLAG_NO_BUFFERING, disco lê e escreve deve ser feita no sector de limites e endereços de memória intermédia tem de ser alinhados os limites do sector de disco na memória. Estas restrições são necessárias porque a memória intermédia que passar para a leitura ou escrita API utilizada directamente para E/s no nível de dispositivo; esse nível, os endereços de memória intermédia e sector tamanhos tem de satisfazer quaisquer restrições de alinhamento de processador e suporte do hardware que estiver a executar no. Mais InformaçãoO Windows 95 CDFS (sistema de ficheiros do CD-ROM) não suporta o sinalizador FILE_FLAG_NO_BUFFERING CreateFile(). Enquanto um FSD 95 Windows, tais como VFAT, poderá implementá-la, FILE_FLAG_NO_BUFFERING não é um sinalizador necessário para controladores de sistema de ficheiros e não é suportada por CDFS. Este fragmento de código demonstra como alinhar sector de dados numa memória intermédia e passá-las para CreateFile(): Se tiver uma situação em que pretende limpar todos os ficheiros abertos na actual unidade lógica, pode fazê-lo: Quando abrir um ficheiro remoto através da rede, o servidor sempre coloca em cache e ignora o sem sinalizador de colocação na memória intermédia especificado pelo cliente. Isto ocorre por predefinição. O redireccionador e servidor não podem implementar correctamente a semântica completa FILE_FLAG_NO_BUFFERING através da rede. Em particular, o requisito de tamanho de sector, alinhado no sector E/s não é possível cumprir. Por conseguinte, quando uma aplicação Win32 baseadas lhe pede para FILE_FLAG_NO_BUFFERING, redireccionador e servidor tratam este como um pedido para FILE_FLAG_WRITE_THROUGH. O ficheiro não colocado em cache no cliente, escritas ir directamente para o servidor e para o disco no servidor e os tamanhos de leitura/escrita na rede são exactamente o que solicita a aplicação. No entanto, o ficheiro é colocada em cache no servidor. Não colocar em cache o cliente pode ter um efeito diferente, dependendo do tipo de E/s. Eliminar os acertos da cache ou leitura antecipada, mas também pode reduzir o tamanho de transmitir e receber. Em geral, para E/s sequencial, é uma boa ideia à cache no cliente. Para pequeno, aleatório acesso E/s, muitas vezes, é melhor não à cache. A informação contida neste artigo aplica-se a:
Tradução automáticaIMPORTANTE: 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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática? erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes 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/
)
| Outros Recursos Outros Sites de Suporte
ComunidadesTraduções de Artigos
|






Windows Live
Facebook
Twitter
Linkedin
Digg it
Yahoo
Delicious
StumbleUpon
Yammer
Reddit
Technorati
FriendFeed
Email


Voltar ao topo