Confidencial de WindowsUna bendición "mixta"

Raymond Chen

Al insertar un CD o DVD, el shell "husmea" el disco para determinar qué tipo de contenido reside en él. Esta determinación indica al shell qué acción de reproducción automática debe realizar. Los detalles precisos de cómo se realiza el examen no se revelan, porque son heurísticos que pueden cambiar en el futuro si se encuentra un algoritmo mejor.

La documentación formal del algoritmo lo haría contractual, con lo cual se impediría que el algoritmo se modificara en lanzamientos posteriores. Oficialmente, por lo tanto, los detalles del algoritmo no se especifican.

Si nunca ha escrito documentación para un SDK, puede no haberse dado cuenta de que la documentación lleva al contrato. Una vez que haga constar que algo se comporta de una cierta manera, no podrá cambiarlo. Si lo hace, las personas que dependían de ese comportamiento dirán "Oye, eso no es lo que la documentación dice. Ha cambiado las reglas una vez que el juego ha empezado".

Aparte de esta advertencia, aquí tiene una descripción increíblemente simplificada y rápida de cómo Windows® XP Service Pack 2 (SP2) clasifica el contenido de CD y DVD de datos que carecen de un archivo autorun.inf. Las versiones y los service packs futuros de Windows pueden comportarse de forma distinta. Digo "increíblemente simplificada" porque el algoritmo real es una tabla de decisiones de 61 pasos que tiene en cuenta todos los tipos de información como, por ejemplo, si la aplicación en primer plano respondió a la notificación "Query cancel autoplay" (Reproducción automática de cancelación de consulta), si hay un programa de pantalla completa en ejecución e incluso si el equipo es un equipo portátil acoplado o desacoplado recientemente. No obstante, sólo voy a tratar el paso del examen de contenido.

  

Primero, el shell comprueba si el usuario especificó "No realizar ninguna acción" como acción para todos los tipos de contenido. Si ése es el caso, entonces no se produce ningún examen. La decisión es simplemente "No realizar ninguna acción".

Aparte de eso, el shell tiene algo hacer. Consulta cada archivo del disco (hasta cuatro directorios de profundidad) y los pone en una de las siguientes categorías según el tipo percibido: imagen, música o película.

Los archivos que no se ajustan a una de estas categorías no se tienen en cuenta. Si sólo hay una categoría representada entre todos los archivos que se comprobaron (por ejemplo, todos los archivos del disco son archivos de música), esto establece el tipo de disco. Si hay más de una de estas tres categorías representada, entonces se considera que el disco es de contenido mixto.

Esto significa que la carátula de álbum del CD lleno de archivos de música hará que el CD sea tratado como de contenido mixto por Windows XP SP2. Éste es uno de esos aspectos que podrían probablemente modificarse. Pero supongamos que este algoritmo se modifica y decidimos que una imagen ocasional en un CD lleno de archivos MP3 no debe inclinar la balanza hacia el contenido mixto. Alguna empresa quizás tenga un CD con muchos archivos de audio y apenas unos pocos de imagen. La empresa confía, de hecho, en que el CD sea detectado como de contenido mixto. Pero cuando el algoritmo cambia, el CD se clasifica incorrectamente como de música. Entonces, esa empresa no estará conforme. ¿Pero quién es el culpable de este problema? ¿Puede ser la empresa la culpable de confiar en los detalles del algoritmo de examen? ¿O es Windows quien tiene la culpa ya que es responsable de cambiar el algoritmo?

Y quién lo iba a decir: en Windows™ Vista, el algoritmo ha cambiado, aunque sólo levemente. En Windows Vista, se realizan varias comprobaciones de antemano para evitar parte del algoritmo en el caso de determinados formatos de disco muy conocidos. Por ejemplo, si una carpeta DCIM está presente en la raíz del disco, se supone que está compuesta de imágenes digitales. Ahora, esperaremos a ver si alguien lo nota.

Raymond Chen, The Old New Thing (en inglés) y su libro del mismo nombre (Addison-Wesley, 2007) tratan de la historia de Windows y la programación Win32. Raymond se lo cuestiona todo.

© 2008 Microsoft Corporation and CMP Media, LLC. Reservados todos los derechos; queda prohibida la reproducción parcial o total sin previa autorización.