Ostatnio interesował mie ten temat, i znalazłem ciekawą strone
https://www.zsk.ict.pwr.wroc.pl/Dydaktyka/UrzadzPeryf/Materialy/
Z mojego doświadczenia stwierdzam że najlepszm sposobem obsługi sprzętu w Windowsie są sterowniki.
Gdyż pracują one w ribg 0 tj. na poziomie jądra oraz obsługują przerwania sprzętowe .
Aby napisać sterownik trzega poznać Asembler i system.
Można szukać na grupach dyskusyjnych lub
https://www.win32asm.civ.pl/
Druga wolniejsza opcja to wykorzystanie standardowych rozkazów API.
W bibliotece SDK na stronie MS
https://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnfiles/html/msdn_serial.asp
znajdziesz podstawy do C++
Powodzenia Paweł