Unlike Linux, Windows syscalls aren't documented and their IDs constantly change[1]. Instead, you're supposed to call wrapper functions provided by ntdll.dll. That said, most programs use even higher level functions from kernel32.dll and friends.
You don't need C/C++ to call a function from a DLL, but it makes things easier, especially for more complex APIs like DirectX.
You don't need C/C++ to call a function from a DLL, but it makes things easier, especially for more complex APIs like DirectX.
[1] - https://j00ru.vexillium.org/syscalls/nt/64/