Función RtlVerifyVersionInfo (wdm.h)
La rutina RtlVerifyVersionInfo compara un conjunto especificado de requisitos de versión del sistema operativo con los atributos correspondientes de la versión que se está ejecutando actualmente del sistema operativo.
Sintaxis
NTSYSAPI NTSTATUS RtlVerifyVersionInfo(
[in] PRTL_OSVERSIONINFOEXW VersionInfo,
[in] ULONG TypeMask,
[in] ULONGLONG ConditionMask
);
Parámetros
[in] VersionInfo
Puntero a una estructura de RTL_OSVERSIONINFOEXW que especifica los requisitos de versión del sistema operativo para comparar con los atributos correspondientes de la versión que se está ejecutando actualmente del sistema operativo.
[in] TypeMask
Especifica los miembros de VersionInfo que se van a comparar con los atributos correspondientes de la versión que se está ejecutando actualmente del sistema operativo. TypeMask se establece en un OR lógico de uno o varios de los valores siguientes.
Valor | Miembro correspondiente |
---|---|
VER_BUILDNUMBER | dwBuildNumber |
VER_MAJORVERSION | dwMajorVersion |
VER_MINORVERSION | dwMinorVersion |
VER_PLATFORMID | dwPlatformId |
VER_SERVICEPACKMAJOR | wServicePackMajor |
VER_SERVICEPACKMINOR | wServicePackMinor |
VER_SUITENAME | wSuiteMask |
VER_PRODUCT_TYPE | wProductType |
[in] ConditionMask
Especifica cómo comparar cada miembro VersionInfo . Para establecer el valor de ConditionMask, un llamador debe usar la macro VER_SET_CONDITION :
VER_SET_CONDITION (
IN OUT ULONGLONG ConditionMask,
IN ULONG TypeBitMask,
IN UCHAR ComparisonType
);
El valor de ConditionMask se crea de la siguiente manera:
Inicialice el valor de ConditionMask en cero.
Llame a VER_SET_CONDITION una vez para cada miembro VersionInfo especificado por TypeMask.
Establezca los parámetros TypeBitMask y ComparisonType para cada llamada a VER_SET_CONDITION de la siguiente manera:
TypeBitMask
Indica el miembro VersionInfo para el que se establece el tipo de comparación. TypeBitMask puede ser uno de los siguientes valores.
Valor | Miembro correspondiente |
---|---|
VER_BUILDNUMBER | dwBuildNumber |
VER_MAJORVERSION | dwMajorVersion |
VER_MINORVERSION | dwMinorVersion |
VER_PLATFORMID | dwPlatformId |
VER_SERVICEPACKMAJOR | wServicePackMajor |
VER_SERVICEPACKMINOR | wServicePackMinor |
VER_SUITENAME | wSuiteMask |
VER_PRODUCT_TYPE | wProductType |
ComparisonType
Especifica el tipo de comparación que RtlVerifyVersionInfo usa para comparar el miembro VersionInfo especificado por TypeBitMask con el atributo correspondiente del sistema operativo que se está ejecutando actualmente.
Para todos los valores de TypeBitMask distintos de VER_SUITENAME, ComparisonType se establece en uno de los valores siguientes.
Valor | Significado |
---|---|
VER_EQUAL | El valor actual debe ser igual al valor especificado. |
VER_GREATER | El valor actual debe ser mayor que el valor especificado. |
VER_GREATER_EQUAL | El valor actual debe ser mayor o igual que el valor especificado. |
VER_LESS | El valor actual debe ser menor que el valor especificado. |
VER_LESS_EQUAL | El valor actual debe ser menor o igual que el valor especificado. |
Si TypeBitMask está establecido en VER_SUITENAME, ComparisonType se establece en uno de los valores siguientes.
Valor | Significado |
---|---|
VER_AND | Todos los conjuntos de productos especificados en el miembro wSuiteMask deben estar presentes en el sistema actual. |
VER_OR | Al menos uno de los conjuntos de productos especificados debe estar presente en el sistema actual. |
Valor devuelto
RtlVerifyVersionInfo devuelve uno de los siguientes valores de estado:
Código devuelto | Descripción |
---|---|
STATUS_SUCCESS | La versión especificada coincide con la versión que se está ejecutando actualmente del sistema operativo. |
STATUS_INVALID_PARAMETER | Los parámetros de entrada no son válidos. |
STATUS_REVISION_MISMATCH | La versión especificada no coincide con la versión actualmente en ejecución del sistema operativo. |
Comentarios
RtlVerifyVersionInfo permite a un controlador comprobar fácilmente la presencia de un conjunto necesario de atributos del sistema operativo. RtlVerifyVersionInfo es el equivalente en modo kernel de la función VerifyVersionInfo en modo de usuario en Windows SDK. Vea el ejemplo de Windows SDK que muestra cómo comprobar la versión del sistema.
Normalmente, RtlVerifyVersionInfo devuelve STATUS_SUCCESS solo si todas las comparaciones se realizan correctamente. Sin embargo, la versión principal, la versión secundaria y la versión de Service Pack se prueban de forma secuencial de la siguiente manera:
Si la versión principal supera el mínimo necesario, la versión secundaria y la versión de Service Pack no se prueban. Por ejemplo, si la versión principal actual es 6.0, una prueba para un sistema mayor o igual que la versión 5.1 del Service Pack 1 se realiza correctamente. La versión secundaria y la versión de Service Pack no se prueban.
Si la versión secundaria supera el mínimo necesario, no se prueba la versión del Service Pack. Por ejemplo, si la versión principal actual es la 5.2, una prueba para una versión del sistema mayor o igual que la versión 5.1 del Service Pack 1 se realiza correctamente. La versión de Service Pack no se prueba.
Si la versión principal del Service Pack supera el mínimo necesario, no se probará la versión secundaria del Service Pack.
Para comprobar un intervalo de versiones del sistema, un controlador puede llamar a RtlVerifyVersionInfo dos veces, una vez para comprobar un límite inferior en la versión del sistema y una vez para comprobar un límite superior en la versión del sistema.
Requisitos
Requisito | Value |
---|---|
Plataforma de destino | Universal |
Encabezado | wdm.h (incluya Ntddk.h) |
Library | NtosKrnl.lib |
Archivo DLL | NtosKrnl.exe (modo kernel); Ntdll.dll (modo de usuario) |
IRQL | PASSIVE_LEVEL |