Función VerifyVersionInfoW (winbase.h)
Compara un conjunto de requisitos de versión del sistema operativo con los valores correspondientes de la versión que se está ejecutando actualmente del sistema. Esta función está sujeta al comportamiento basado en manifiestos. Para obtener más información, vea la sección Comentarios.
Nota: Esta función ha quedado en desuso para Windows 10. Consulte tener como destino las aplicaciones para Windows para obtener más información.
Sintaxis
BOOL VerifyVersionInfoW(
[in] LPOSVERSIONINFOEXW lpVersionInformation,
[in] DWORD dwTypeMask,
[in] DWORDLONG dwlConditionMask
);
Parámetros
[in] lpVersionInformation
Puntero a una estructura de OSVERSIONINFOEX que contiene los requisitos de versión del sistema operativo que se van a comparar. El parámetro dwTypeMask indica los miembros de esta estructura que contienen información que se va a comparar.
Debe establecer el dwOSVersionInfoSize miembro de esta estructura en sizeof(OSVERSIONINFOEX)
. También debe especificar datos válidos para los miembros indicados por dwTypeMask. La función omite los miembros de estructura para los que no se establece el bit de dwTypeMask correspondiente.
[in] dwTypeMask
Máscara que indica los miembros de la estructura OSVERSIONINFOEX que se va a probar. Este parámetro puede ser uno o varios de los siguientes valores.
[in] dwlConditionMask
Tipo de comparación que se va a usar para cada miembro de lpVersionInfo que se va a comparar. Para compilar este valor, llame a la función
Valor devuelto
Si el sistema operativo actualmente en ejecución cumple los requisitos especificados, el valor devuelto es un valor distinto de cero.
Si el sistema actual no cumple los requisitos, el valor devuelto es cero y GetLastError devuelve ERROR_OLD_WIN_VERSION.
Si se produce un error en la función, el valor devuelto es cero y GetLastError devuelve un código de error distinto de ERROR_OLD_WIN_VERSION.
Observaciones
La función VerifyVersionInfo recupera información de versión sobre el sistema operativo que se está ejecutando actualmente y la compara con los miembros válidos de la estructura lpVersionInfo. Esto le permite determinar fácilmente la presencia de un conjunto necesario de condiciones de versión del sistema operativo. Es preferible usar
Normalmente, VerifyVersionInfo devuelve un valor distinto de cero solo si todas las pruebas especificadas se realizan correctamente. Sin embargo, las versiones principales, secundarias y service pack se prueban de forma jerárquica porque la versión del sistema operativo es una combinación de estos valores. Si existe una condición para la versión principal, reemplaza las condiciones especificadas para la versión secundaria y la versión de Service Pack. (No se puede probar la versión principal superior a 5 y la versión secundaria menor o igual que 1. Si especifica dicha prueba, la función cambiará la solicitud para probar una versión secundaria mayor que 1 porque está realizando una operación mayor que en la versión principal).
La función prueba estos valores en este orden: versión principal, versión secundaria y versión de Service Pack. La función continúa probando los valores mientras son iguales y se detiene cuando uno de los valores no cumple la condición especificada. Por ejemplo, si prueba un sistema mayor o igual que la versión 5.1 de Service Pack 1, la prueba se realiza correctamente si la versión actual es 6.0. (La versión principal es mayor que la versión especificada, por lo que las pruebas se detienen). De la misma manera, si prueba un sistema mayor o igual que la versión 5.1 de Service Pack 1, la prueba se realiza correctamente si la versión actual es 5.2. (La versión secundaria es mayor que las versiones especificadas, por lo que las pruebas se detienen). Sin embargo, si prueba un sistema mayor o igual que la versión 5.1 de Service Pack 1, se produce un error en la prueba si la versión actual es 5.0 Service Pack 2. (La versión secundaria no es mayor que la versión especificada, por lo que las pruebas se detienen).
Para comprobar un intervalo de versiones del sistema, debe llamar a VerifyVersionInfo dos veces. Por ejemplo, para comprobar que la versión del sistema es mayor que 5.0 pero menor o igual que 5.1, primero llame a VerifyVersionInfo para probar que la versión principal es 5 y la versión secundaria es mayor que 0, luego llame a VerifyVersionInfo de nuevo para probar que la versión principal es 5 y la versión secundaria es menor o igual que 1.
La identificación del sistema operativo actual no suele ser la mejor manera de determinar si existe una característica de sistema operativo determinada. Esto se debe a que el sistema operativo puede haber tenido nuevas características agregadas en un archivo DLL redistribuible. En lugar de usar getVersionEx para determinar el número de versión o la plataforma del sistema operativo, pruebe la presencia de la propia característica. Para obtener más información, vea versión del sistema operativo.
Para comprobar si el sistema operativo actual es la versión de Media Center o Tablet PC de Windows, llame a GetSystemMetrics.
Windows 10: VerifyVersionInfo devuelve false cuando las aplicaciones que no tienen un manifiesto de compatibilidad para Windows 8.1 o Windows 10 si se establece el parámetro lpVersionInfo para que especifique Windows 8.1 o Windows 10, incluso cuando la versión actual del sistema operativo sea Windows 8.1 o Windows 10. En concreto, verifyVersionInfo tiene el siguiente comportamiento:
- Si la aplicación no tiene ningún manifiesto, VerifyVersionInfo se comporta como si la versión del sistema operativo fuera Windows 8 (6.2).
- Si la aplicación tiene un manifiesto que contiene el GUID que corresponde a Windows 8.1, VerifyVersionInfo se comporta como si la versión del sistema operativo sea Windows 8.1 (6.3).
- Si la aplicación tiene un manifiesto que contiene el GUID que corresponde a Windows 10, VerifyVersionInfo se comporta como si la versión del sistema operativo sea Windows 10 (10.0).
Para manifestar las aplicaciones para Windows 8.1 o Windows 10, consulte Destino de la aplicación para Windows.
Ejemplos
Para obtener un ejemplo, vea Comprobación de la versión del sistema.
Nota
El encabezado winbase.h define VerifyVersionInfo como alias que selecciona automáticamente la versión ANSI o Unicode de esta función en función de la definición de la constante de preprocesador UNICODE. La combinación del uso del alias neutral de codificación con código que no es neutral de codificación puede dar lugar a errores de coincidencia que dan lugar a errores de compilación o tiempo de ejecución. Para obtener más información, vea Conventions for Function Prototypes.
Requisitos
Requisito | Valor |
---|---|
cliente mínimo admitido | Windows 2000 Professional [solo aplicaciones de escritorio] |
servidor mínimo admitido | Windows 2000 Server [solo aplicaciones de escritorio] |
de la plataforma de destino de |
Windows |
encabezado de |
winbase.h (incluya Windows.h) |
biblioteca de |
Kernel32.lib |
DLL de |
Kernel32.dll |
Consulte también
de la versión del sistema operativo