AutoPlay , una característica introducida en Windows 98 , examina los medios y dispositivos extraíbles recién descubiertos y, en función del contenido, como imágenes, música o archivos de vídeo, lanza una aplicación adecuada para reproducir o mostrar el contenido. [1] Está estrechamente relacionada con la característica AutoRun del sistema operativo. AutoPlay se creó para simplificar el uso de dispositivos periféricos ( reproductores de MP3 , tarjetas de memoria , dispositivos de almacenamiento USB y otros) al iniciar automáticamente el software necesario para acceder y ver el contenido en estos dispositivos. AutoPlay se puede mejorar con software y hardware compatibles con AutoPlay. El usuario puede configurarlo para asociar aplicaciones favoritas con eventos y acciones de AutoPlay.
Cuando un usuario inserta un CD-ROM en una unidad o conecta una cámara USB, Windows detecta la llegada y comienza un proceso de examen del dispositivo o búsqueda del medio. Busca propiedades del dispositivo o contenido en el medio para que AutoPlay pueda presentar un conjunto de opciones significativas al usuario. Cuando el usuario realiza una elección particular, también tiene la opción de hacer que esa selección sea automática la próxima vez que Windows vea ese contenido o dispositivo. [2]
El cuadro de diálogo Reproducción automática (en Windows XP y versiones posteriores) muestra el resultado de la colocación de un DVD por parte del usuario en un lector de DVD, en este caso la unidad D :. La Reproducción automática ha determinado que lo más probable es que el contenido sea una película en DVD y presenta un conjunto de acciones al usuario en función de esa decisión. Estas acciones se denominan controladores y hay conjuntos de controladores asociados con varios tipos de contenido. El usuario ahora puede tomar su decisión y hacer clic en Aceptar para continuar. Sin embargo, si también marca la casilla de verificación "Realizar siempre la acción seleccionada" en este punto, no se le solicitará la próxima vez que vea ese tipo de contenido en particular en esa unidad en particular; la aplicación seleccionada se iniciará automáticamente.
Si un usuario se arrepiente de esa decisión o desea realizar selecciones automáticas de Reproducción automática para cualquier tipo de contenido en particular, las propiedades de Reproducción automática para cualquier unidad son accesibles a través del icono de Mi PC en el escritorio. Al seleccionar una unidad y luego "Archivo/Propiedades" en el menú del Explorador de Windows , seguido de la selección de la pestaña Reproducción automática, aparece un cuadro de diálogo similar al que se muestra. Los tipos de contenido se pueden seleccionar con el cuadro desplegable. Aquí, el cuadro de diálogo muestra los controladores disponibles si Reproducción automática alguna vez determina que el tipo de contenido en la unidad D: sea "Imágenes". Al seleccionar una acción para realizar, esa acción se vuelve automática para ese usuario. Al seleccionar "Preguntarme cada vez que elija una acción" se elimina cualquier asociación; Reproducción automática preguntará la próxima vez.
Los tipos de contenido disponibles varían según el tipo de unidad seleccionada. Las imágenes, los archivos de música y los archivos de vídeo están disponibles con cualquier unidad. Las unidades de DVD y CD también pueden tener "CD de música" o "Película en DVD" y Windows Vista agrega otras opciones como "Película en CD de vídeo" a la lista.
El "contenido mixto" es el resultado de tipos de contenido de archivos que pertenecen a más de uno de los tipos de contenido de archivos de imágenes, archivos de música o archivos de video. Tenga en cuenta que Windows siempre considera que un CD que contiene pistas de audio es un "CD de música", independientemente de la presencia de pistas de datos. [3] Por lo tanto, un CD con archivos de imágenes, archivos de video y pistas de audio es un "CD de música"; no es "contenido mixto".
Si este es el resultado de la decisión de reproducción automática, el usuario siempre verá el cuadro de diálogo de reproducción automática, que contendrá una selección de aplicaciones consideradas apropiadas para el contenido encontrado. Por lo tanto, si se encuentran archivos de música y de video en una unidad flash, el usuario podrá elegir entre los controladores para "Archivos de música" junto con los controladores para "Archivos de video". En este caso, el usuario no puede hacer que su selección sea la predeterminada.
Sin embargo, el cuadro de diálogo de propiedades de reproducción automática de cualquier unidad suele ofrecer la opción "Contenido mixto" como tipo de contenido. Las opciones disponibles aquí se limitan a acciones que pueden gestionar cualquier tipo de archivos; normalmente, "Abrir carpeta para ver archivos" es el único controlador que aparece aquí. Esto permite al usuario hacer que esa acción sea la predeterminada para el contenido mixto.
Ciertos tipos de dispositivos no aparecen como letras de unidad en "Mi PC". Se denominan dispositivos sin volumen y la reproducción automática los maneja de forma algo diferente a los dispositivos con volumen, como los CD y los DVD. Muchas cámaras digitales y dispositivos de vídeo entran en esta categoría.
Como Windows no puede examinar los archivos del dispositivo para determinar el tipo de contenido, el fabricante es quien debe decidir cómo proceder. Un fabricante puede registrar controladores en su dispositivo en particular, puede agregar su dispositivo a un grupo de dispositivos (por ejemplo, ZipDrives) o permitir que una clase de dispositivo (por ejemplo, todos los dispositivos que son cámaras de video) administre su dispositivo por él. Esto determina qué controladores se incluirán en el cuadro de diálogo de reproducción automática cuando se detecte su dispositivo.
Como este tipo de dispositivos no tienen una letra de unidad, no se puede acceder a las propiedades de reproducción automática ni modificarlas a través de "Mi PC". Sin embargo, cuando se conecta un dispositivo, la detección hace que Windows coloque un icono en el área de notificación de la barra de tareas (comúnmente denominada bandeja ). Ahora, las preferencias de reproducción automática para este dispositivo se pueden cambiar haciendo clic en este icono. La imagen adyacente muestra el icono que aparecía cuando se conectaba una cámara de vídeo.
En una nueva instalación de Windows, se registra un conjunto predeterminado de aplicaciones de controlador con el sistema de reproducción automática. [2] Los siguientes son los valores predeterminados con Windows XP SP2. La acción y el proveedor son simplemente cadenas almacenadas dentro del controlador, pueden variar para dar al usuario una mejor idea de lo que sucederá si elige esa acción. También pueden cambiar para adaptarse al idioma preferido del usuario. Muchos controladores utilizan la misma aplicación de Windows; por ejemplo, Windows Media Player se utiliza para reproducir archivos de música y películas en DVD. AutoPlay agrega la palabra "using" para unir las dos cadenas de forma ordenada.
Windows 95 y Windows 98 tienen una versión primitiva de Reproducción automática. Su única función es procesar CD de audio, CD de vídeo y DVD de películas e iniciar una aplicación para procesarlos. Si el nuevo programa no entra en ninguna de estas categorías, Windows continúa con el proceso de Ejecución automática habitual. [4]
La acción que se lleva a cabo con los CD de audio y los DVD de películas considera básicamente ambos tipos de medios como si fueran archivos ; luego, el Explorador simplemente realiza la acción predeterminada asociada con ese tipo de archivo. Los tipos de archivos y las acciones asociadas con ellos se pueden ver y cambiar desde cualquier carpeta del Explorador desde la pestaña "Tipos de archivos" del menú "Herramientas/Opciones de carpeta". Se almacenan en el Registro en HKEY_CLASSES_ROOT.
Si el CD es un formato de audio CD estándar del Libro Rojo , entonces Explorer ejecuta la acción predeterminada registrada para el tipo de archivo AudioCD . Normalmente, está configurada en "Reproducir" y normalmente ejecuta cdplayer.exe . [5]
Si el DVD es un DVD de película, el Explorador ejecuta la acción predeterminada registrada para el tipo de archivo de DVD . Los DVD de película se reconocen por la existencia del archivo \video_ts\video_ts.ifo . La acción para DVD también suele estar configurada en "Reproducir" y normalmente ejecuta dvdplay.exe .
El hecho de que la comprobación de CD de audio y DVD de películas se realice antes de la ejecución automática tiene implicaciones para deshabilitar la reproducción automática de este tipo de medios. Deshabilitar la ejecución automática a través del Registro o la Política de grupo o buscar mensajes de QueryCancelAutoPlay dentro de una aplicación no impide que estos tipos de medios se reproduzcan automáticamente al insertarlos. [6]
Sin embargo, se pueden desactivar los CD de audio editando el tipo de archivo de AudioCD y haciendo clic en "Establecer como predeterminado". Esto eliminará la acción Reproducir como predeterminada para ese tipo de archivo. Alternativamente, cambiar la entrada (Predeterminada) en la clave HKEY_CLASSES_ROOT\AudioCD\Shell a "" (una cadena en blanco) logrará lo mismo. La acción de desactivación para los DVD de películas es la misma, con "DVD" utilizado en lugar de "AudioCD".
A continuación se muestran las configuraciones de registro pertinentes junto con sus valores predeterminados en Windows 98SE:
HKEY_CLASSES_ROOT\AudioCD\shell (Predeterminado) "Reproducir"RAÍZ DE CLASES DE KEY\AudioCD\shell\play (Predeterminado) "&Reproducir"HKEY_CLASSES_ROOT\AudioCD\shell\play\comando (Predeterminado) "%SystemRoot%\cdplayer.exe /play %1"RAÍZ DE CLASES DE LA CLAVE\DVD\shell (Predeterminado) "Reproducir"RAÍZ DE CLASES DE CLAVE\DVD\shell\play (Predeterminado) "&Reproducir"HKEY_CLASSES_ROOT\DVD\shell\play\comando (Predeterminado) "%SystemRoot%\system32\dvdplay.exe /play %1"
Si existe un archivo llamado autorun.inf en el directorio raíz del sistema de archivos, las configuraciones de ese archivo pueden agregar opciones a las presentadas al usuario o afectar la vista que AutoPlay tiene del contenido. En Windows XP, la existencia de este archivo puede afectar el flujo del proceso: AutoRun puede proceder a ejecutar una aplicación directamente sin la intervención del usuario. En Windows Vista, AutoRun no puede omitir AutoPlay de esta manera; solo puede agregar opciones a las presentadas al usuario. La sección de manejo de Inf del artículo de AutoRun detalla cuándo y si se invoca AutoPlay.
La capa de ejecución automática consulta inicialmente los valores del Registro de Windows para decidir si se deben iniciar acciones para una unidad o tipo de unidad en particular. Si se ha deshabilitado la ejecución automática para el volumen recién descubierto, el proceso se detiene en ese punto, lo que deshabilita efectivamente la reproducción automática para ese volumen.
Una vez finalizada la ejecución automática, la reproducción automática se inicia examinando el volumen en busca de contenido. Esto se denomina rastreo de contenido . La reproducción automática decide si el volumen es un CD de audio, un DVD de película, un medio de grabación en blanco (un CD-R, CD-RW, DVD+R, etc.) o un volumen genérico que contiene archivos.
En el caso de un volumen genérico, AutoPlay comienza con el directorio raíz y busca en el sistema de archivos hasta una profundidad de cuatro niveles de directorio debajo del directorio raíz para encontrar tipos de archivos que pertenecen a ciertas categorías o "tipos de contenido".
Si esta búsqueda demora más de un segundo, un cuadro de diálogo de progreso muestra el proceso de escaneo que se está llevando a cabo. Este cuadro de diálogo puede confundirse fácilmente con una operación de copia del Explorador; sin embargo, no se copian ni mueven archivos.
En lo que respecta al rastreo de reproducción automática, los archivos se dividen en tres categorías principales o "tipos de contenido". Los archivos que no están dentro de estas categorías no son de interés:
El contenido se considera "contenido mixto" si los archivos caen en más de una de las tres categorías.
Se considera que el contenido es desconocido si el proceso de rastreo de contenido no encuentra contenido categorizable. Esto no significa que no haya archivos presentes, sino que no hay archivos que pertenezcan a uno o más de los tres tipos de contenido anteriores. En este caso, AutoPlay abre una ventana del explorador en el directorio raíz del medio y el flujo del proceso finaliza aquí.
Para clasificar los archivos en los tres tipos de contenido, se utiliza el valor PerceivedType asociado con varias extensiones de archivo para determinar la categoría. PerceivedType se puede configurar como "imagen", "audio" o "video" para clasificar los archivos en tipos de contenido Imágenes, Música o Video respectivamente. Existen otros PerceivedType conocidos por Windows (texto, comprimido, sistema y aplicación), pero estos no son relevantes para la reproducción automática.
Toda la información sobre el tipo de archivo se almacena en el Registro en HKEY_CLASSES_ROOT. A continuación, se muestra la información del Registro PerceivedType para los archivos de video .avi y los archivos de música .mp3:
HKEY_CLASES_ROOT\.avi (Predeterminado) "avifile" Tipo percibido "video"HKEY_CLASES_ROOT\.mp3 (Predeterminado) "archivo mp3" Tipo percibido "audio"
El EventHandler es el título de una tabla que establece una asociación entre varios Handlers y el Evento desencadenante. En el caso de eventos basados en volumen, los EventHandlers se generan completamente de manera interna en AutoPlay sin referencia al Registro.
Tenga en cuenta que el examen de la sección AutoPlayHandlers del Registro de Windows revela las claves ContentTypeSniffers y ContentTypeHandlers . A partir de estas claves, varias subclaves y valores parecen estar relacionados con la reproducción automática basada en el volumen e incluso controlarla. Sin embargo, a partir de Windows XP SP2, estas claves se definen únicamente para uso futuro y la reproducción automática no accede a ellas. [7]
Se elige uno de los siguientes controladores de eventos predefinidos basándose únicamente en la decisión que AutoPlay toma internamente después del examen de volumen y el rastreo de contenido:
Como Windows no puede rastrear contenido en dispositivos que no sean de volumen, AutoPlay analiza estos dispositivos por sus características en lugar de por su contenido. Cada dispositivo recién descubierto tiene información de identificación, normalmente almacenada dentro del propio dispositivo. Esta información es recopilada por enumeradores y se utiliza para crear cadenas de identificación a las que Windows hace referencia cuando accede y hace referencia al dispositivo. Una cadena de identificación para un dispositivo en particular se denomina ID de dispositivo . [9]
Para identificar de forma única cada instancia de cada dispositivo instalado, Windows asigna un ID de instancia a cada dispositivo. Este ID contiene información de ubicación o un número de serie, si es compatible.
La combinación del ID del dispositivo con el ID de la instancia genera una cadena que identifica de forma única un dispositivo individual en un sistema. Este es el ID de la instancia del dispositivo . Un ejemplo de una cadena de un dispositivo PCI es:
Cuando Windows descubre un nuevo dispositivo, almacena las instancias del dispositivo en el Registro desde:
El Administrador de dispositivos de Windows (ubicado debajo del ícono Sistema en el Panel de control) mostrará el ID de instancia de dispositivo para cualquier dispositivo en particular. Para obtener las Propiedades de cualquier dispositivo, seleccione la pestaña Detalles del cuadro de diálogo Propiedades y seleccione "ID de instancia de dispositivo" en el cuadro desplegable para recuperar la información.
Otra característica de cada dispositivo es la clase de interfaz del dispositivo . [10] Esto define un contrato de interfaz, donde un dispositivo acepta admitir un conjunto básico de llamadas de control de entrada/salida pertenecientes a esa clase de interfaz del dispositivo. Por ejemplo, un dispositivo que acepta admitir el contrato de interfaz del teclado debe admitir la llamada IOCTL_KEYBOARD_QUERY_ATTRIBUTES, entre otras. Cada clase se representa como un gran número universalmente único llamado GUID .
Un dispositivo puede registrar varios GUID de clase de interfaz de dispositivo para sí mismo, contrayéndose para admitir varias llamadas de interfaz adecuadas. El GUID de clase de interfaz más común relacionado con los dispositivos de almacenamiento es el GUID de clase de interfaz de dispositivo de volumen, {53F5630D-B6BF-11D0-94F2-00A0C91EFB8B }.
Los GUID de clase de interfaz de dispositivo se pueden encontrar en el Registro en:
Cuando se analiza un dispositivo que no es de volumen, AutoPlay busca en varios lugares del Registro una entrada DeviceHandlers . Se trata simplemente de una cadena que, cuando se combina con otra información, selecciona un EventHandler (que registra los Handlers). Las entradas DeviceHandlers suelen colocarse en el Registro por el fabricante del dispositivo. También existen categorías más amplias de dispositivos que tienen DeviceHandlers preasignados, como por ejemplo los dispositivos con cámara de vídeo.
El primer lugar donde se busca la reproducción automática es en la clave de parámetros del dispositivo de la instancia del dispositivo. Por ejemplo:
es la cadena de identificación del dispositivo USB para una unidad ZIP USB de Iomega. Combinada con un número de serie USB, por ejemplo 059B003112010E93 , esto forma el ID de instancia del dispositivo. Por lo tanto, la clave de parámetros del dispositivo se encuentra en:
HKLM\...\Enum\USB\Vid_059b&Pid_0031\059B003112010E93\Parámetros del dispositivo Iconos "" Sin iconos multimedia "" Etiqueta "" Controladores de dispositivos "ZipDeviceHandler"
En este caso, el valor de DeviceHandlers es "ZipDeviceHandler". También pueden estar presentes otros parámetros del dispositivo: Icons puede especificar un icono para representar el dispositivo junto con NoMediaIcons para representar el dispositivo cuando no tiene medios presentes. Label especifica un nombre descriptivo para el dispositivo.
Si no se encuentra ninguna entrada DeviceHandlers en la instancia del dispositivo, AutoPlay comprueba la existencia de una entrada DeviceGroup, nuevamente en la instancia del dispositivo. Esto permite que un conjunto completo de dispositivos comparta parámetros de dispositivo.
HKLM\...\Enum\USB\Vid_059b&Pid_0031\059B003112010E93\Parámetros del dispositivo Grupo de dispositivos "ZipDrive100"
Los parámetros de este grupo de dispositivos se almacenan en:
Entonces, para el ejemplo del grupo ZipDrive100:
HKLM\...\Manejadores de reproducción automática\Grupos de dispositivos\ZipDrive100 Iconos "%SystemRoot%\system32\shell32.dll,-230\0\0" Etiqueta "Unidad Zip 100" Controladores de dispositivos "ZipDeviceHandler"
Por último, AutoPlay busca los GUID de clase de interfaz de dispositivo relevantes. Los parámetros de las clases de dispositivo se almacenan en:
Aquí está la entrada que la aplicación Microsoft Movie Maker registra para todos y cada uno de los dispositivos de cámara de vídeo:
HKLM\...\Manejadores de reproducción automática\Clases de dispositivo\{CC7BFB41-F175-11D1-A392-00E0291F3959} Controladores de dispositivos "VideoCameraDeviceHandler" Etiqueta "@C:\Archivos de programa\Movie Maker\wmm2res.dll,-63094" Iconos "C:\WINDOWS\system32\shell32.dll,-317\0\0"