Partilhar via


Suporte a várias versões do sistema operacional

Os pacotes de driver geralmente oferecem suporte a muitas versões do sistema operacional Windows. Como parte do suporte a várias versões do sistema operacional, o pacote de driver talvez precise ter um comportamento diferente em diferentes versões do sistema operacional para usar novos recursos ou atender aos novos requisitos da nova versão do sistema operacional. Por exemplo, um pacote de driver pode querer ter um comportamento diferente em sistemas operacionais após uma determinada versão para atender aos requisitos dos Drivers do Windows. As seções a seguir descrevem como você pode ter comportamentos diferentes no arquivo INF do pacote de driver e no comportamento de runtime de binários no pacote de driver.

Suporte a INF

As decorações de TargetOSVersion nas seções de modelos INF no INF permitem que o autor do INF forneça instruções e configurações de instalação diferentes para diferentes versões do sistema operacional.

Consulte Combinar extensões de plataforma com versões do sistema operacional para obter mais informações.

Suporte de runtime

Ao tentar alterar o comportamento em runtime para dar suporte a várias versões do sistema operacional, é recomendável verificar a disponibilidade de recursos ou APIs sempre que possível, em vez de tentar verificar se o código está sendo executado em uma determinada versão do sistema operacional ou posterior. Por exemplo, se houver uma API disponível que você deseja usar, você pode tentar localizá-la dinamicamente em vez de vinculá-la estaticamente. Se você conseguir localizá-lo, poderá usá-lo, no entanto, se ele não estiver presente em seu ambiente de execução atual, poderá retroceder a algum comportamento alternativo.

Modo de kernel

Para o modo kernel, consulte Gravar drivers para diferentes versões do Windows para obter mais informações sobre como dar suporte a várias versões do Windows com base em um único driver.

Modo de usuário

No modo de usuário, você pode usar LoadLibraryEx junto com GetProcAddress para verificar se uma API específica que você deseja usar está disponível em seu ambiente de execução atual e para obter um ponteiro de função a ser usado para chamar essa API. Consulte Vinculação dinâmica em tempo de execução e Usar vinculação dinâmica em tempo de execução para obter mais informações.