the NDIS and Bluetooth teams have contributed some small kernel-specific features
Thanks for sharing and taking the time to write out such an in depth presentation. It is interesting to learn of. From my perspective it sounds somewhat useful, but not compelling enough to pull in a proprietary library just for this. Part of this assessment is some of it is trivial to roll one’s own and I already have done so. The functionality also seems light for what is implemented. For example, no object for KSPIN_LOCK and thus no guaranteed initialization. I am sure some people will like it though.
Microsoft’s toolchain does not ship a copy of the STL that works in kernel mode
The WDK is using standard library files that are older than some people here. What is preventing getting these updated to the latest file set? The language has marched a long way since the 90’s. No one is asking for exceptions and i/o. But certainly std::byte, std::array, std::unique_ptr, and others would be terrific to have in the kernel arsenal. The key here is to allow use of standard things (std: that are well documented and understood by developers, not proprietary wil:: things copy and pasted from std:: concepts. And the foundation of any higher level c++ library should be built on std:: building blocks.