By Default, any new driver development should be done in WDF, as for today the syntax of KMDF or UMDF (2.0) is the same.
you should be able to switch between KMDF and UMDF (unless you are using some special function only for KMDF or UMDF)
WDM is only used in special cases and I would not recommend writing drivers in it. (In most cases you can port WDM drivers to KMDF, you can always use WDM function in KMDF drivers if you don't find equivalent solution for it)
I recommend you start reviewing the [Microsoft Driver samples][1] repo
[1]: https://github.com/microsoft/Windows-driver-samples