Segredos do WindowsUma "mistura" abençoada

Raymond Chen

Quando você insere um CD ou DVD , o shell "fareja" o disco, para determinar que tipo de conteúdo reside nele. Essa determinação então orienta o shell na decisão sobre que ação de execução automática ele deve executar. Os detalhes precisos de como o farejamento é feito não são documentados, pois são heurísticos que podem ser alterados no futuro, se um algoritmo melhor for encontrado.

Documentar o algoritmo formalmente o tornaria contratual, evitando, dessa forma, que o algoritmo fosse ajustado em versões subseqüentes. Oficialmente, portanto, os detalhes do algoritmo são deixados sem especificação.

Se você nunca escreveu a documentação de um SDK, talvez não tenha percebido que a documentação leva ao contrato. Depois que você registra que algo se comporta de uma determinada maneira, não pode mudar isso. Se você o fizer, pessoas que contavam com esse comportamento dirão, "Ei, não é isso o que diz a documentação. Você está mudando as regras depois do início do jogo."

Com essa limitação fora do caminho, eis uma descrição rápida e incrivelmente supersimplificada de como o Windows® XP Service Pack 2 (SP2) categoriza o conteúdo de CDs de dados e DVDs de dados que não têm um arquivo autorun.inf. (Service packs futuros e futuras versões do Windows poderão comportar-se de modo diverso). Digo "incrivelmente supersimplificada" porque o algoritmo real é uma tabela de decisão de 61 etapas que leva em conta todos os tipos de informações, como: se o aplicativo de primeiro plano respondeu à notificação "Query cancel autoplay", se um programa de tela cheia está em execução e até se o computador é um laptop que foi encaixado ou desencaixado recentemente. Eu, no entanto, vou analisar apenas a etapa de farejamento de conteúdo.

  

Primeiro, o shell verifica se o usuário especificado "Não toma nenhuma atitude" como atitude em relação a todos os tipos de conteúdo. Em caso positivo, não há por que farejar. A decisão é simplesmente "Não tomar nenhuma atitude".

Do contrário, o shell tem algo a fazer. Ele olha em cada arquivo do disco – até quatro diretórios de profundidade – e os coloca em uma das categorias a seguir, com base nos respectivos tipos percebidos: imagem, música e filme.

Os arquivos que não se encaixam em uma dessas categorias são ignorados. Se apenas uma categoria for representada entre todos os arquivos que foram verificados (digamos, por exemplo, todos os arquivos no disco são arquivos de música), isso estabelece o tipo de disco. Se mais de uma das três categorias forem representadas, o disco é considerado de conteúdo misto.

Isso significa que a arte do álbum em seu CD cheio de arquivos de música fará com que o CD seja tratado como conteúdo misto pelo Windows XP SP2. Isso é um dos fatores que provavelmente poderia comportar algum ajuste. Mas, suponhamos que esse algoritmo tenha sido ajustado e nós decidimos que uma imagem ocasional em um CD cheio de MP3s não deve desequilibrar o conteúdo misto. Alguma empresa pode ter um CD com muitos arquivos de áudio e apenas algumas imagens nele. A empresa efetivamente confia que o CD será detectado como de conteúdo misto. Mas, quando o algoritmo é alterado, o CD é categorizado erroneamente como sendo de música. Agora a empresa fica aborrecida. Mas quem é o culpado por esse problema? A empresa pode ser culpada por confiar nos detalhes do algoritmo de farejamento? Ou o Windows é culpado, já que ele é o responsável pela alteração do algoritmo?

Pasme! No Windows Vista™, o algoritmo foi alterado, embora apenas um pouco. No Windows Vista, diversas verificações foram feitas de antemão para dar um curto-circuito no algoritmo de determinados layouts de disco bem conhecidos. Por exemplo, se uma pasta DCIM estiver presente na raiz do disco, presume-se que essa pasta consista em imagens digitais. Agora vamos aguardar para ver se alguém irá observar.

Raymond Chen, The Old New Thing, e o livro, de título idêntico (Addison-Wesley, 2007) tratam da história do Windows e da programação Win32. Raymond reflete sobre como pode ser o sol.

© 2008 Microsoft Corporation e CMP Media, LLC. Todos os direitos reservados. A reprodução parcial ou completa sem autorização é proibida..