Estrutura OSVERSIONINFOEXW (wdm.h)
A estrutura RTL_OSVERSIONINFOEXW contém informações de versão do sistema operacional.
Sintaxe
typedef struct _OSVERSIONINFOEXW {
ULONG dwOSVersionInfoSize;
ULONG dwMajorVersion;
ULONG dwMinorVersion;
ULONG dwBuildNumber;
ULONG dwPlatformId;
WCHAR szCSDVersion[128];
USHORT wServicePackMajor;
USHORT wServicePackMinor;
USHORT wSuiteMask;
UCHAR wProductType;
UCHAR wReserved;
} OSVERSIONINFOEXW, *POSVERSIONINFOEXW, *LPOSVERSIONINFOEXW, RTL_OSVERSIONINFOEXW, *PRTL_OSVERSIONINFOEXW;
Membros
dwOSVersionInfoSize
O tamanho, em bytes, de uma estrutura RTL_OSVERSIONINFOEXW . Esse membro deve ser definido antes que a estrutura seja usada com RtlGetVersion.
dwMajorVersion
O número de versão principal do sistema operacional. Por exemplo, para o Windows 2000, o número da versão principal é cinco. Para obter mais informações, confira a tabela em Comentários.
dwMinorVersion
O número de versão secundária do sistema operacional. Por exemplo, para o Windows 2000, o número de versão secundária é zero. Para obter mais informações, confira a tabela em Comentários.
dwBuildNumber
O número de build do sistema operacional.
dwPlatformId
A plataforma do sistema operacional. Para Win32 em sistemas operacionais baseados em NT, RtlGetVersion retorna o valor VER_PLATFORM_WIN32_NT.
szCSDVersion[128]
A cadeia de caracteres de versão do service pack. Esse membro contém uma cadeia de caracteres terminada em nulo, como "Service Pack 3", que indica o service pack mais recente instalado no sistema. Se nenhum service pack estiver instalado, o RtlGetVersion poderá não inicializar essa cadeia de caracteres. Inicialize szCSDVersion como zero (cadeia de caracteres vazia) antes da chamada para RtlGetVersion.
wServicePackMajor
O número de versão principal do service pack mais recente instalado no sistema. Por exemplo, para Service Pack 3, o número de versão principal é três. Se nenhum service pack tiver sido instalado, o valor será zero.
wServicePackMinor
O número de versão secundária do service pack mais recente instalado no sistema. Por exemplo, para o Service Pack 3, o número de versão secundária é zero.
wSuiteMask
Os pacotes de produtos disponíveis no sistema. Esse membro é definido como zero ou como OR bit a bit de um ou mais dos valores a seguir.
Valor | Significado |
---|---|
VER_SUITE_BACKOFFICE | Os componentes do Microsoft BackOffice estão instalados. |
VER_SUITE_BLADE | Windows Server 2003, Web Edition está instalado. |
VER_SUITE_COMPUTE_SERVER | Windows Server 2003, Compute Cluster Edition está instalado. |
VER_SUITE_DATACENTER | O Windows Server 2008 Datacenter, Windows Server 2003, Datacenter Edition ou Windows 2000 Datacenter Server está instalado. |
VER_SUITE_ENTERPRISE | O Windows Server 2008 Enterprise, Windows Server 2003, Edição Enterprise ou Windows 2000 Advanced Server está instalado. |
VER_SUITE_EMBEDDEDNT | O Windows XP Embedded está instalado. |
VER_SUITE_PERSONAL | O Windows Vista Home Premium, o Windows Vista Home Basic ou o Windows XP Home Edition está instalado. |
VER_SUITE_SINGLEUSERTS | Há suporte para a Área de Trabalho Remota, mas há suporte apenas para uma sessão interativa. Esse valor é definido, a menos que o sistema esteja em execução no modo de servidor de aplicativos. |
VER_SUITE_SMALLBUSINESS (consulte a observação) | O Microsoft Small Business Server já foi instalado no sistema, mas pode ter sido atualizado para outra versão do Windows. Para obter mais informações sobre esse bit de sinalizador, consulte a seção Comentários a seguir. |
VER_SUITE_SMALLBUSINESS_RESTRICTED | O Microsoft Small Business Server é instalado com a licença de cliente restritiva em vigor. Para obter mais informações sobre esse bit de sinalizador, consulte a seção Comentários a seguir. |
VER_SUITE_STORAGE_SERVER | O Windows Storage Server 2003 R2 ou o Windows Storage Server 2003 está instalado. |
VER_SUITE_TERMINAL | Os Serviços de Terminal estão instalados. Esse valor é sempre definido. Se VER_SUITE_TERMINAL estiver definido, mas VER_SUITE_SINGLEUSERTS não estiver definido, o sistema operacional estará em execução no modo de servidor de aplicativos. |
VER_SUITE_WH_SERVER | O Windows Home Server está instalado. |
Você não deve depender apenas do sinalizador VER_SUITE_SMALLBUSINESS para determinar se o Small Business Server está instalado no momento. Esse sinalizador e o sinalizador VER_SUITE_SMALLBUSINESS_RESTRICTED são definidos quando este pacote de produtos é instalado. Se você atualizar essa instalação para o Windows Server, Standard Edition, o sinalizador VER_SUITE_SMALLBUSINESS_RESTRICTED será limpo, mas o sinalizador VER_SUITE_SMALLBUSINESS permanecerá definido, o que, nesse caso, indica que o Small Business Server foi instalado anteriormente nesse sistema. Se essa instalação for atualizada para o Windows Server, Edição Enterprise, o sinalizador VER_SUITE_SMALLBUSINESS permanecerá definido.
wProductType
O tipo de produto. Esse membro contém informações adicionais sobre o sistema. Esse membro pode ser um dos seguintes valores:
Valor | Significado |
---|---|
VER_NT_WORKSTATION | Windows 2000 ou versão profissional posterior |
VER_NT_DOMAIN_CONTROLLER | Controlador de domínio do Windows 2000 ou posterior |
VER_NT_SERVER | Windows 2000 ou posterior |
wReserved
Reservado para uso futuro.
Comentários
As informações nessa estrutura incluem os números de versão principal e secundária, o número de build, o identificador de plataforma, os pacotes de produtos instalados e o service pack mais recente instalado no sistema. Essa estrutura é usada com as rotinas RtlGetVersion e RtlVerifyVersionInfo .
Contar com informações de versão nem sempre é a melhor maneira de testar se um recurso está disponível. Para obter diretrizes, consulte a documentação do recurso no qual você está interessado.
Se possível, projete o código de detecção de versão em seu driver para permitir que o driver seja executado em versões futuras do Windows. Se o driver exigir uma versão específica do sistema operacional, trate essa versão como a versão mínima com suporte e não como a única versão na qual o driver pode ser executado.
A tabela a seguir resume as informações de versão retornadas por versões com suporte do Windows. Use as informações na coluna "Outros" ou no número de build para distinguir entre sistemas operacionais com números de versão idênticos.
Sistema operacional | Número de versão | dwMajorVersion | dwMinorVersion | Outro |
---|---|---|---|---|
Windows 11 | 10.0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2022 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2019 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows 10 (todas as versões) | 10.0 | 10 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Server 2016 | 10.0 | 10 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Server 2012 R2 | 6.3 | 6 | 3 | wProductType != VER_NT_WORKSTATION |
Windows 8.1 | 6.3 | 6 | 3 | wProductType == VER_NT_WORKSTATION |
Windows 8 | 6.2 | 6 | 2 | wProductType == VER_NT_WORKSTATION |
Windows Server 2012 | 6.2 | 6 | 2 | wProductType != VER_NT_WORKSTATION |
Windows 7 | 6.1 | 6 | 1 | wProductType == VER_NT_WORKSTATION |
Windows Server 2008 R2 | 6.1 | 6 | 1 | wProductType != VER_NT_WORKSTATION |
Windows Server 2008 | 6,0 | 6 | 0 | wProductType != VER_NT_WORKSTATION |
Windows Vista | 6,0 | 6 | 0 | wProductType == VER_NT_WORKSTATION |
Windows Home Server | 5.2 | 5 | 2 | wSuiteMask == VER_SUITE_WH_SERVER |
Windows Server 2003 | 5.2 | 5 | 2 | Não aplicável |
Windows XP Professional x64 Edition (consulte a observação) | 5.2 | 5 | 2 | wProductType == VER_NT_WORKSTATION |
Windows XP | 5.1 | 5 | 1 | Não aplicável |
Windows 2000 | 5.0 | 5 | 0 | Não aplicável |
Somente um driver de modo kernel de 64 bits pode ser executado no Windows XP Professional x64 Edition. Portanto, um driver de modo kernel de 32 bits pode omitir com segurança a verificação dessa versão do Windows.
Requisitos
Requisito | Valor |
---|---|
Cabeçalho | wdm.h (inclua Ntddk.h) |