SergiusTheBest / FindWDK

CMake module for building drivers with Windows Development Kit (WDK)
BSD 3-Clause "New" or "Revised" License
251 stars 53 forks source link

Fixes for WDK 8.1 #27

Closed JamesReynolds closed 2 years ago

JamesReynolds commented 2 years ago

Adds support for Windows WDK 8.1. Splits the version out to WDK_VERSION for the includes and WDK_LIB_VERSION for the libraries and selects the highest of win7, win8 etc... from the available paths.

SergiusTheBest commented 2 years ago

I think selecting the highest of win7, win8, etc can prevent a driver from loading on older OS versions.

SergiusTheBest commented 2 years ago

In theory in should be in sync with WDK_WINVER. But it may be not easy to implement. So probably the manual selection will be a good compromise.

JamesReynolds commented 2 years ago

In theory in should be in sync with WDK_WINVER. But it may be not easy to implement. So probably the manual selection will be a good compromise.

I didn't notice that var, I'll check it out on my system whilst I fix the COMPARE issue. You're right, it should only ever be winv6.3, win7 or win8 so they can be manually checked.

JamesReynolds commented 2 years ago

I've made that change and tests are successfully passing now. We could set WINVER to 0x600 for winv6.3, 0x601 for win7 and 0x602 for win8 - then make it 0xA00 for WDK 10?

SergiusTheBest commented 2 years ago

Note that winv6.3 is the newest from WDK8.1 and matches Windows 8.1/Server 2012R2 (WINVER 0x0603). WINVER 0x600 is for Vista/Server 2008.

I'd like to keep WDK_VERSION. We can introduce WDK_LIB_VERSION and WDK_INC_VERSION to form file paths.

JamesReynolds commented 2 years ago

I agree with that, I've made the change. I didn't realise that winv6.3 corresponded to 8.1 - I've reordered the components so that winv6.3 is selected as first preference.

JamesReynolds commented 2 years ago

Thanks!