GetProductInfo 函数 (sysinfoapi.h)
检索本地计算机上操作系统的产品类型,并将该类型映射到指定操作系统支持的产品类型。
若要检索在“要求”部分指定的最低受支持操作系统之前 Windows 版本的产品类型信息,请使用 GetVersionEx 函数。 还可以使用 Win32_OperatingSystem WMI 类的 OperatingSystemSKU 属性。
语法
BOOL GetProductInfo(
[in] DWORD dwOSMajorVersion,
[in] DWORD dwOSMinorVersion,
[in] DWORD dwSpMajorVersion,
[in] DWORD dwSpMinorVersion,
[out] PDWORD pdwReturnedProductType
);
参数
[in] dwOSMajorVersion
操作系统的主版本号。 最小值为 6。
dwOSMajorVersion、dwOSMinorVersion、dwSpMajorVersion 和 dwSpMinorVersion 参数的组合描述了应用程序的最大目标操作系统版本。 例如,Windows Vista 和 Windows Server 2008 版本为 6.0.0.0,Windows 7 和 Windows Server 2008 R2 版本为 6.1.0.0。 所有基于Windows 10的版本都将列为版本 6.3。
[in] dwOSMinorVersion
操作系统的次要版本号。 最小值为 0。
[in] dwSpMajorVersion
操作系统 Service Pack 的主版本号。 最小值为 0。
[in] dwSpMinorVersion
操作系统 Service Pack 的次要版本号。 最小值为 0。
[out] pdwReturnedProductType
产品类型。 此参数不能为 NULL。 如果指定的操作系统小于当前操作系统,则此信息将映射到指定操作系统支持的类型。 如果指定的操作系统大于支持的最高操作系统,则此信息将映射到当前操作系统支持的类型。
此参数可以是以下值之一, (下面的某些产品可能不支持) 。
值 | 含义 |
---|---|
|
Microsoft Store |
|
业务 N |
|
HPC Edition |
|
服务器 Hyper Core V |
|
Windows 10 家庭版 |
|
Windows 10 家庭版中国 |
|
Windows 10 家庭版 N |
|
Windows 10 家庭单语言版 |
|
服务器数据中心 (评估安装) |
|
服务器数据中心、Semi-Annual 通道 (核心安装) |
|
服务器标准版、Semi-Annual 通道 (核心安装) |
|
服务器数据中心 (完整安装。对于 Windows Server 2012 及更高版本的服务器核心安装,请使用 确定 服务器核心是否正在运行的方法。) |
|
服务器数据中心 (核心安装,Windows Server 2008 R2 及更早版本) |
|
没有 Hyper-V (核心安装的服务器数据中心) |
|
没有 Hyper-V 的服务器数据中心 (完整安装) |
|
Windows 10 教育版 |
|
Windows 10 教育版 N |
|
Windows 10 企业版 |
|
Windows 10 企业版 E |
|
Windows 10 企业版评估 |
|
Windows 10 企业版 N |
|
Windows 10 企业版 N 评估 |
|
Windows 10 企业版 2015 LTSB |
|
Windows 10 企业评估版 2015 长期服务方案 |
|
Windows 10 企业版 2015 LTSB N |
|
Windows 10 企业版 2015 长期服务 N 评估 |
|
Server Enterprise (完整安装) |
|
服务器企业 (核心安装) |
|
没有 Hyper-V (核心安装的服务器企业版) |
|
适用于基于 Itanium 的系统的服务器企业版 |
|
不带 Hyper-V (完整安装) 的服务器企业版 |
|
Windows Essential Server 解决方案附加 |
|
Windows Essential Server 解决方案附加 SVC |
|
Windows Essential Server 解决方案管理 |
|
Windows Essential Server 解决方案管理 SVC |
|
家庭普通版 |
|
不支持 |
|
Home Basic N |
|
家庭高级版 |
|
不支持 |
|
家庭高级版 N |
|
Windows Home Server 2011 |
|
Windows Storage Server 2008 R2 Essentials |
|
Microsoft Hyper-V Server |
|
Windows IoT 企业版 |
|
Windows IoT 企业版 LTSC |
|
Windows 10 IoT Core |
|
Windows 10 IoT 核心版商业版 |
|
Windows Essential Business Server Management Server |
|
Windows Essential Business Server Messaging Server |
|
Windows Essential Business Server 安全服务器 |
|
Windows 10 移动版 |
|
Windows 10 移动企业版 |
|
Windows MultiPoint Server Premium (完整安装) |
|
Windows MultiPoint Server Standard (完整安装) |
|
Windows 10 协同版 |
|
Windows 10 专业教育版 |
|
Windows 10 专业工作站版 |
|
Windows 10 专业工作站版 N |
|
Windows 10 专业版 |
|
不支持 |
|
Windows 10 专业版 N |
|
专业媒体中心 |
|
Windows Small Business Server 2011 Essentials |
|
适用于 SB Solutions 的服务器 EM |
|
适用于 SB 解决方案的服务器 |
|
适用于 SB Solutions 的服务器 EM |
|
Windows Server 2008 for Windows Essential Server 解决方案 |
|
不带 Hyper-V 的 Windows Server 2008 for Windows Essential Server 解决方案 |
|
Server Foundation |
|
虚拟桌面Windows 10 企业版 |
|
Windows Small Business Server |
|
Small Business Server Premium |
|
Small Business Server Premium (核心安装) |
|
Windows MultiPoint Server |
|
Server Standard (评估安装) |
|
Server Standard (完整安装。对于 Windows Server 2012 及更高版本的服务器核心安装,请使用确定 服务器核心是否正在运行的方法。) |
|
Server Standard (核心安装,Windows Server 2008 R2 及更早版本) |
|
没有 Hyper-V (核心安装) 的服务器标准版 |
|
不带 Hyper-V 的服务器标准版 |
|
服务器解决方案高级版 |
|
Server Solutions Premium (核心安装) |
|
初学者 |
|
不支持 |
|
初学者 N |
|
Storage Server Enterprise |
|
Storage Server Enterprise (核心安装) |
|
Storage Server Express |
|
Storage Server Express (核心安装) |
|
Storage Server Standard (评估安装) |
|
存储服务器标准 |
|
存储服务器标准 (核心安装) |
|
存储服务器工作组 (评估安装) |
|
存储服务器工作组 |
|
存储服务器工作组 (核心安装) |
|
旗舰版 |
|
不支持 |
|
Ultimate N |
|
未知产品 |
|
Web 服务器 (完整安装) |
|
Web 服务器 (核心安装) |
返回值
如果函数成功,则返回值为非零值。
如果函数失败,则返回值为零。 如果其中一个输入参数无效,此函数将失败。
注解
若要检测是否已安装服务器角色或功能,请使用 服务器功能 WMI 提供程序。
Windows 的后续版本会将它支持的产品类型映射到每个受支持的以前版本的 Windows 支持的产品类型集,再映射到版本 6.0.0.0。 因此,对其中任何值执行相等性测试的应用程序将在未来的版本中继续工作,即使添加新的产品类型也是如此。
PRODUCT_*_SERVER_CORE值不会在 Windows Server 2012 及更高版本中返回。 例如,基本服务器版本服务器数据中心用于生成两个不同的安装选项:“完整服务器”和“核心服务器”。 对于 Windows Server 2012, GetProductInfo 将返回PRODUCT_DATACENTER,而不考虑在产品安装过程中使用的选项。 如上所述,对于 Windows Server 2012 及更高版本的服务器核心安装,请使用 确定服务器核心是否正在运行的方法。
下表指示 6.1.0.0 中引入的产品类型,以及如果在 6.1.0.0 系统上使用版本 6.0.0.0 调用 GetProductInfo ,它们将映射到什么。
6.1.0.0 的新增功能 | 返回的值与 6.0.0.0 |
---|---|
PRODUCT_PROFESSIONAL | PRODUCT_BUSINESS |
PRODUCT_PROFESSIONAL_N | PRODUCT_BUSINESS_N |
PRODUCT_STARTER_N | PRODUCT_STARTER |
若要编译使用此函数的应用程序,请将_WIN32_WINNT定义为 0x0600 或更高版本。 有关详细信息,请参阅 使用 Windows 标头。
示例
有关示例,请参阅 获取系统版本。
要求
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | sysinfoapi.h (包括 Windows.h) |
Library | Kernel32.lib |
DLL | Kernel32.dll |