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

Consulte también

RTL_OSVERSIONINFOEXW

RTL_OSVERSIONINFOW

RtlGetVersion