Я бы сказал, что вы сообщите нам причину, по которой, по вашему мнению, вы хотите знать, является ли процессор Intel i3 / i5 / i7 или нет;чтобы мы могли сказать вам, что вы не правы, и что вы должны использовать вместо этого флаги функций, возвращаемые CPUID или чем-то еще.В основном, недостаточно информации, чтобы дать вам ответ, который вам нужен (информации достаточно, чтобы дать вам ответ, который вы просили).: -)
Поля "wProcessorLevel" и "wProcessorRevision" структуры SYSTEM_INFO практически бесполезны, поскольку вы не знаете, кто является производителем ЦП.Вы можете использовать VendorID из CPUID, чтобы (попытаться) определить производителя, но если вы сделаете это, вы сможете получить информацию о семействе / модели / пошаговом режиме одновременно.
"wProcessorLevel" выглядит так, как будто оно занятопрямо из "CPUID.family".Для "wProcessorLevel = 6" это может быть любой процессор Intel от Pentium II до новейшего Nehalem, за исключением процессоров на базе Netburst (например, Pentium 4).Это также может быть AMD K7, Cyrix M2, VIA C3 или что-то еще.
Поле "wProcessorRevision" выглядит так, как будто оно получено из "(CPUID.model << 8) + CPUID.stepping".Ступенчатая часть должна игнорироваться.Часть «CPUID.model» (в сочетании с частью «CPUID / family») недостаточна, чтобы определить, является ли это новейшим процессором Intel Nehalem или старым процессором другого производителя (который использует те же «CPUID.family» и «CPUID.model "). Игнорирование« wProcessorLevel »и использование только части« CPUID.model »только ухудшит ситуацию. </p>
Конечно, даже с полной идентификационной информацией из CPUID будет очень трудно сказатьразница между i3 / i5 / i7 и Celeron на базе Nehalem на базе Xeon или Nehalem, или какими-либо другими торговыми марками, которые Intel предпочитает использовать (но есть способы, если вы действительно имеете в виду «i3 / i5 или i7»), или определить,Процессоры, которые Intel выпустит в будущем, являются или не являются i3 / i5 / i7 (невозможно предсказать, какое семейство / модель / значения степпинга Intel может использовать в будущем). Также не забывайте, что некоторые процессоры позволяют получать информациювозвращается CPUID для изменения, поэтому нет строгой гарантии, что процессор, который возвращает «vendorID = Intel, family = 6, model = 30», не являетсячто-то совершенно другое (и, следовательно, нет строгой гарантии, что информация «wProcessorRevision» и «wProcessorRevision» верна);и вам нужно смотреть глубже, чем поставщик / семейство / модель CPUID, если это вызывает озабоченность.