"Typically, RtlVerifyVersionInfo returns STATUS_SUCCESS only if all comparisons succeed. However, the major version, minor version, and service pack version are tested in a sequential manner in the following way:
If the major version exceeds the minimum required, then the minor version and service pack version are not tested. For example, if the current major version is 6.0, a test for a system greater than or equal to version 5.1 service pack 1 succeeds. The minor version and service pack version are not tested.
If the minor version exceeds the minimum required, then the service pack version is not tested. For example, if the current major version is 5.2, a test for a system version greater than or equal to version 5.1 service pack 1 succeeds. The service pack version is not tested.
If the major service pack version exceeds the minimum required, then the minor service pack version is not tested. "
а ошибка из за того что ComparisonType==0 в VER_SET_CONDITION()
а ошибку ты получаешь STATUS_REVISION_MISMATCH, что значит The specified version does not match the currently running version of the operating system.
попробуй заполнить структуру целиком и правильно.
не проще кстати RtlGetVersion использовать? (PsGetVersion - устаревшая)
и наконец. The RtlVerifyVersionInfo routine compares a specified set
сравнивает!!!! то есть надо указать в VersionInfo - то с чем ты сравниваешь, а потом при помощи VER_SET_CONDITION - задать условия сравнения.... и получить ответ да/нет! (STATUS_SUCCESS или STATUS_REVISION_MISMATCH)
описание
http://msdn.microsoft.com/en-us/library/ms804307.aspxпример
http://www.microsoft.com/whdc/driver/tips/w2kDrvLoad.mspx