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.