Windows 8 でプログラムを実行する際に問題があります。ReadFile を使用して、RS232 シリアル ポートからデータを取得します。
私のコードは、Windows XP から Win 7 までの OS で何年も問題なく動作していますが、以前の OS では非常に高速または即時でしたが、現在、ReadFile 操作は常に 94 ~ 100 ミリ秒かかりました。
強制的に 1 ミリ秒になるようにタイムアウトを変更しようとしましたが、常に同じ結果になります。
GetCommTimeouts(Handle, &cto);
cto.ReadIntervalTimeout=MAXDWORD;
cto.ReadTotalTimeoutMultiplier=0;
cto.ReadTotalTimeoutConstant=0;
cto.WriteTotalTimeoutMultiplier=0;
cto.WriteTotalTimeoutConstant=0;
if(SetCommTimeouts(Handle, &cto) == 0)
// And the read function :
rOL.Offset = 0;
rOL.OffsetHigh = 0;
if (ReadFile(Handle, &byte, 1, &i, &rOL) == TRUE)
多くの投稿とすべてのMSDNを読んだ後、解決策が見つかりません!