On the Wikipedia page for Windows, it states the Windows is written in Assembly for the bootloader and task switcher, and C and C++ for kernel routines.IIRC, you can call C++ functions from an extern C'd block. I can get using C for the kernel functions so pure C apps can use them (like printf and such), but if they can just be wrapped in an extern C  block, then why code in C?
Why do operating systems do low level stuff in C and C++? Why not just C++?
c++;c;language choice;kernel
It's mostly for historical reasons. Some parts of the windows kernel were originally written in C, because 1983, over three decades ago, when Windows 1.0 was unleashed, C++ was barely released. Now these C-libraries will stay there forever, because Microsoft made backward-compatibility a selling point and rewriting a bug-compatible version of the C-parts in C++ requires an awful lot of effort for no effective benefit.