Supporto di più versioni del sistema operativo
I pacchetti driver in genere supporteranno molte versioni del sistema operativo Windows. Nell'ambito del supporto di più versioni del sistema operativo, il pacchetto driver potrebbe dover avere un comportamento diverso in versioni diverse del sistema operativo per poter usare nuove funzionalità o per soddisfare nuovi requisiti della nuova versione del sistema operativo. Ad esempio, un pacchetto driver potrebbe voler avere un comportamento diverso nei sistemi operativi dopo una determinata versione per soddisfare i requisiti dei driver di Windows. Le sezioni seguenti descrivono come è possibile avere comportamenti diversi sia nel file INF del pacchetto driver che nel comportamento di runtime dei file binari nel pacchetto driver.
Supporto INF
Le decorazioni TargetOSVersion nelle sezioni dei modelli INF in INF consentono all'autore INF di fornire istruzioni e impostazioni di installazione diverse per versioni diverse del sistema operativo.
Per altre informazioni, vedere Combinazione di estensioni della piattaforma con le versioni del sistema operativo.
Supporto di runtime
Quando si tenta di modificare il comportamento in fase di esecuzione per supportare più versioni del sistema operativo, è consigliabile verificare la disponibilità di funzionalità o API, quando possibile, invece di provare a verificare se il codice è in esecuzione in una determinata versione del sistema operativo o versione successiva. Ad esempio, se è disponibile un'API che si vuole usare, è possibile tentare di individuarla in modo dinamico anziché collegarla in modo statico. Se è possibile individuarlo, è possibile usarlo, tuttavia, se non è presente nell'ambiente in esecuzione corrente, è possibile eseguire il fallback a un comportamento alternativo.
Modalità kernel
Per la modalità kernel, vedere Scrittura di driver per versioni diverse di Windows per altre informazioni su come supportare più versioni di Windows da un singolo driver.
Modalità utente
In modalità utente, è possibile usare LoadLibraryEx insieme a GetProcAddress per verificare se una determinata API che si vuole usare è disponibile nell'ambiente in esecuzione corrente e per ottenere un puntatore a funzione da usare per chiamare tale API. Per altre informazioni, vedere Collegamento dinamico in fase di esecuzione e Uso del collegamento dinamico in fase di esecuzione.