Clientes : Windows 7 Servidores : Windows Server 2008 R2
Impacto en las características
Gravedad : baja Frecuencia : baja
Descripción
Windows 7 presenta una nueva sección en el manifiesto de aplicación denominado "Compatibilidad". Esta sección ayuda a Windows a determinar las versiones de Windows a las que se diseñó una aplicación de destino y permite a Windows proporcionar el comportamiento que espera la aplicación en función de la versión de Windows a la que se dirige la aplicación.
La sección Compatibilidad permite a Windows proporcionar un nuevo comportamiento al nuevo software creado por el desarrollador, a la vez que mantiene la compatibilidad con el software existente. Esta sección también ayuda a Windows a ofrecer una mayor compatibilidad en versiones futuras de Windows. Por ejemplo, una aplicación que declara compatibilidad solo para Windows 7 en la sección Compatibilidad seguirá recibiendo el comportamiento de Windows 7 en la versión futura de Windows.
Manifestación del cambio
Las aplicaciones sin una sección Compatibilidad de su manifiesto recibirán el comportamiento de Windows Vista de forma predeterminada en Windows 7 y versiones futuras de Windows. Tenga en cuenta que Windows XP y Windows Vista omiten esta sección de manifiesto y no tienen ningún impacto en ellos.
Los siguientes componentes de Windows proporcionan un comportamiento divergente en función de la sección Compatibilidad de Windows 7:
Grupo de subprocesos predeterminado de RPC
Windows 7: Para mejorar la escalabilidad y reducir los recuentos de subprocesos, RPC cambió al grupo de subprocesos NT (grupo predeterminado). Para Windows Vista, RPC usó un grupo de subprocesos privados.
En el caso de los archivos binarios compilados para Win7, se usa el grupo predeterminado.
Si se llama a I_RpcMgmtEnableDedicatedThreadPool antes de llamar a cualquier API rpc, se usa el grupo de subprocesos privados (comportamiento de Vista).
Si se llama a I_RpcMgmtEnableDedicatedThreadPool después de una llamada RPC, se usa el grupo predeterminado, I_RpcMgmtEnableDedicatedThreadPool devuelve el error 1764 y no se admite la operación solicitada.
Windows Vista (valor predeterminado): En el caso de los archivos binarios compilados para Windows Vista y versiones posteriores, se usa el grupo privado.
Bloqueo de DirectDraw
Windows 7: Las aplicaciones manifestadas para Windows 7 no pueden llamar a Lock API en DDRAW para bloquear el búfer de vídeo principal de Escritorio. Si lo hace, se producirá un error y se devolverá el puntero NULL para la réplica principal. Este comportamiento se aplica incluso si la composición del Administrador de ventanas de escritorio no está activada. Las aplicaciones compatibles con Windows 7 no deben bloquear el búfer de vídeo principal para representarse.
Windows Vista (valor predeterminado): Las aplicaciones podrán adquirir un bloqueo en el búfer de vídeo principal, ya que las aplicaciones heredadas dependen de este comportamiento. Al ejecutar la aplicación, se desactiva el Administrador de ventanas de escritorio.
Transferencia de bloques de bits de DirectDraw (Blt) a principal sin ventana de recorte
Windows 7: Las aplicaciones que se manifiestan para Windows 7 no pueden realizar Blt en el búfer de vídeo de escritorio principal sin una ventana de recorte. Si lo hace, se producirá un error y el área Blt no se representará. Windows aplica este comportamiento incluso si no activa la Composición del Administrador de ventanas de escritorio. Las aplicaciones compatibles con Windows 7 deben Blt en una ventana de recorte.
Windows Vista (valor predeterminado): Las aplicaciones deben ser capaces de conectarse a la base de datos principal sin una ventana de recorte, ya que las aplicaciones heredadas dependen de este comportamiento. Al ejecutar esta aplicación, se desactiva el Administrador de ventanas de escritorio.
GetOverlappedResult API
Windows 7: Resuelve una condición de carrera en la que una aplicación multiproceso mediante GetOverlappedResult puede devolver sin restablecer el evento en la estructura superpuesta, lo que hace que la siguiente llamada a esta función devuelva prematuramente.
Windows Vista (valor predeterminado): Proporciona el comportamiento con la condición de carrera en la que las aplicaciones pueden tener una dependencia. Las aplicaciones que deseen evitar esta carrera antes del comportamiento de Windows 7 deben esperar en el evento superpuesto y, cuando se señale, llame a GetOverlappedResult con bWait == FALSE.
Asistente de compatibilidad de programas (PCA)
Windows 7: La sección Aplicaciones con compatibilidad no obtendrá la mitigación de PCA.
Windows Vista (valor predeterminado): Las aplicaciones que no se instalan correctamente o se bloquean durante el tiempo de ejecución en algunas circunstancias específicas obtendrán la mitigación de PCA. Para más información, consulte la sección de referencia.
Aprovechamiento de las funcionalidades de características
Actualice el manifiesto de aplicación con la información de compatibilidad más reciente para la compatibilidad con el sistema operativo. En la sección se describen las adiciones al manifiesto:
SupportedOS: GUID del sistema operativo compatible: los GUID que se asignan a los sistemas operativos compatibles son:
{e2011457-1546-43c5-a5fe-008deee3d3f0} para Windows Vista: este es el valor predeterminado para el contexto de conmutación.
{35138b9a-5d96-4fbd-8e2d-a2440225f93a} para Windows 7: las aplicaciones que establecen este valor en el manifiesto de aplicación obtienen el comportamiento de Windows 7.
Nota
Microsoft generará y publicará GUID para futuras versiones de Windows según sea necesario.
A continuación se muestra un ejemplo de un manifiesto actualizado.
Nota
Los nombres de atributo y etiqueta del manifiesto de aplicación distinguen mayúsculas de minúsculas.
XML
<?xml version="1.0" encoding="UTF-8" standalone="yes"?><assemblyxmlns="urn:schemas-microsoft-com:asm.v1"manifestVersion="1.0"><compatibilityxmlns="urn:schemas-microsoft-com:compatibility.v1"><application><!--The ID below indicates application support for Windows Vista --><supportedOSId="{e2011457-1546-43c5-a5fe-008deee3d3f0}"/><!--The ID below indicates application support for Windows 7 --><supportedOSId="{35138b9a-5d96-4fbd-8e2d-a2440225f93a}"/></application></compatibility></assembly>
El valor de agregar GUID para ambos sistemas operativos en el ejemplo anterior es proporcionar compatibilidad de nivel inferior. Las aplicaciones que admiten ambas plataformas no necesitarían manifiestos independientes para cada plataforma.
Pruebas de compatibilidad, rendimiento, confiabilidad y facilidad de uso
Pruebe la aplicación con la nueva sección de compatibilidad y SupportedOS ID ={35138b9a-5d96-4fbd-8e2d-a2440225f93a} para asegurarse de que la aplicación funciona correctamente con el comportamiento más reciente de Windows 7
Pruebe la aplicación con la nueva sección de compatibilidad y SupportedOS ID ={e2011457-1546-43c5-a5fe-008deee3d3f0} (o sin esta sección por completo) para asegurarse de que la aplicación funciona correctamente con los comportamientos de Windows Vista en Windows 7.
Problemas conocidos
Error de coincidencia de contexto Una aplicación se ejecuta en un contexto de Windows Vista en lugar de en un contexto de Windows 7 en un equipo que ejecuta una edición x64 de Windows 7 o Windows Server 2008 R2.
Solución Vaya a la página de Soporte técnico de Microsoft de KB 976038: Las excepciones que se inician desde una aplicación que se ejecuta en una versión de 64 bits de Windows se omiten para obtener más detalles.
Demuestre los aspectos básicos de la seguridad de los datos, la administración del ciclo de vida, la seguridad de la información y el cumplimiento para proteger una implementación de Microsoft 365.
La sección de compatibilidad del manifiesto de la aplicación ayuda al sistema operativo a determinar las versiones de Windows que una aplicación se diseñó como destino.
El archivo Mt.exe es una herramienta que genera archivos y catálogos firmados. Está disponible en el Kit de desarrollo de software (SDK) de Microsoft Windows. Mt.exe requiere que el archivo al que se hace referencia en el manifiesto esté presente en el mismo directorio que el manifiesto.