在哪里可以找到有关使用Microsoft Windows SLAPI的更多信息?

Where can I find more information on using Microsoft Windows SLAPI?

本文关键字:SLAPI Windows 信息 Microsoft 在哪里      更新时间:2023-10-16

特别是,我试图找出如何使用它来区分服务器和服务器核心版本的Windows。SLGetWindowsInformation()看起来很容易使用,但我不知道有什么信息名称可用。

SLAPI =软件许可API

如果不想使用GetProductInfo(),可以调用SLQueryInformationDWORD并指定Kernel-ProductInfo作为name参数。返回值与GetProductInfo()相同:D(至少在我的测试系统上)

您可以使用GetProductInformation API对此进行检查,只需检查pdwreturndproducttype参数中的一个服务器核心值。

示例代码(Delphi但不难翻译成c(++)):

function IsServerCore: Boolean;
var
  osvi: OSVERSIONINFOEX;
  dwPT: DWORD;
begin
  ZeroMemory(@osvi, SizeOf(osvi));
  osvi.dwOSVersionInfoSize := SizeOf(osvi);
  Win32Check(GetVersionEx(osvi));
  Win32Check(GetProductInfo(osvi.dwMajorVersion, osvi.dwMinorVersion,
    osvi.wServicePackMajor, osvi.wServicePackMinor, dwPT));
  case dwPT of
    PRODUCT_DATACENTER_SERVER_CORE,
    PRODUCT_STANDARD_SERVER_CORE,
    PRODUCT_ENTERPRISE_SERVER_CORE,
    PRODUCT_WEB_SERVER_CORE,
    PRODUCT_DATACENTER_SERVER_CORE_V,
    PRODUCT_STANDARD_SERVER_CORE_V,
    PRODUCT_ENTERPRISE_SERVER_CORE_V,
    PRODUCT_STORAGE_EXPRESS_SERVER_CORE,
    PRODUCT_STORAGE_STANDARD_SERVER_CORE,
    PRODUCT_STORAGE_WORKGROUP_SERVER_CORE,
    PRODUCT_STORAGE_ENTERPRISE_SERVER_CORE,
    PRODUCT_STANDARD_SERVER_SOLUTIONS_CORE,
    PRODUCT_SOLUTION_EMBEDDEDSERVER_CORE,
    PRODUCT_SMALLBUSINESS_SERVER_PREMIUM_CORE: Result := True
  else
    Result := False;
  end;
end;