Bagikan melalui


Mendukung beberapa versi sistem operasi

Paket driver umumnya akan mendukung banyak versi sistem operasi Windows. Sebagai bagian dari mendukung beberapa versi sistem operasi, paket driver mungkin perlu memiliki perilaku yang berbeda pada versi sistem operasi yang berbeda untuk menggunakan fitur baru atau untuk memenuhi persyaratan baru dari versi sistem operasi baru. Misalnya, paket driver mungkin ingin memiliki perilaku yang berbeda pada sistem operasi setelah versi tertentu untuk memenuhi persyaratan Driver Windows. Bagian berikut menjelaskan bagaimana Anda dapat memiliki perilaku yang berbeda baik dalam file INF paket driver maupun dalam perilaku runtime biner dalam paket driver.

Dukungan INF

Dekorasi TargetOSVersion pada bagian model INF di INF memungkinkan penulis INF untuk memberikan instruksi dan pengaturan penginstalan yang berbeda untuk versi sistem operasi yang berbeda.

Lihat Menggabungkan ekstensi platform dengan versi sistem operasi untuk informasi selengkapnya.

Dukungan runtime

Saat mencoba mengubah perilaku pada runtime untuk mendukung beberapa versi sistem operasi, disarankan Anda memeriksa ketersediaan fitur atau API jika memungkinkan alih-alih mencoba memeriksa apakah kode berjalan pada versi sistem operasi tertentu atau yang lebih baru. Misalnya, jika ada API yang ingin Anda gunakan jika tersedia, Anda dapat mencoba menemukannya secara dinamis alih-alih menautkannya secara statis ke api tersebut. Jika Anda dapat menemukannya, Anda dapat menggunakannya, namun, jika tidak ada di lingkungan Anda saat ini berjalan, Anda dapat kembali ke beberapa perilaku alternatif.

Mode kernel

Untuk mode kernel, lihat Menulis driver untuk versi Windows yang berbeda untuk informasi selengkapnya tentang cara mendukung beberapa versi Windows dari satu driver.

Mode pengguna

Dalam mode pengguna, Anda dapat menggunakan LoadLibraryEx bersama dengan GetProcAddress untuk memeriksa apakah API tertentu yang ingin Anda gunakan tersedia di lingkungan yang sedang berjalan dan untuk mendapatkan penunjuk fungsi untuk digunakan untuk memanggil API tersebut. Lihat Penautan dinamis run-time dan Menggunakan penautan dinamis run-time untuk informasi selengkapnya.