je ne sais pas si ca peut t'aider mais la fonction win32 qui gère les device en bas niveau c'est ca :
BOOL DeviceIoControl(
HANDLE hDevice, // handle to device of interest
DWORD dwIoControlCode, // control code of operation to perform
LPVOID lpInBuffer, // pointer to buffer to supply input data
DWORD nInBufferSize, // size of input buffer
LPVOID lpOutBuffer, // pointer to buffer to receive output data
DWORD nOutBufferSize, // size of output buffer
LPDWORD lpBytesReturned, // pointer to variable to receive output byte count
LPOVERLAPPED lpOverlapped // pointer to overlapped structure for asynchronous operation
);
avec ca tu peux controler les ports COM (entre autre)
mais si tu veux les controler directement, dans ce cas il faut ecrire un driver spécifique.