전에 시리얼 통신때문에 질문을 드렸었는데요.. 나름대로 문제점을 찾아서 이렇게 질문을 드립니다.
1. 포트에 대한 핸들을 얻고 설정을 한 후에
2. 쓰레드를 생성하여 ReadFile로 처리루틴을 집어넣습니다.
3, 메인에서는 WriteFile을 가지고 포트를 핸들링 합니다.
우선 2번에서.. 디버깅을 걸어보면 계속 ReadFile에서 걸려있습니다.
즉 Receive 되는 무엇인가가 있을때까지 기다린다는 의미가 되는것 같고요..
Receive가 되면 한 루프를 돌고 다시 ReadFile에 가서 걸려있습니다. 이건 당연한 결과인것 같은데요..
문제는 이 루틴을 XP에서 가져다 썼을때,
ReadFile에서 계속 기다리는 중에 WriteFile이 발생하면 다운이 되어버린다는 것입니다.
Win98에서는 무리없이 돌아가는것인데.. 뭐가 잘못된건지 모르겠습니다.
Win98 : ReadFile에서 COM 포트 핸들 잡고있는중에 WriteFile로 동일 핸들 사용 가능
WinXP : ReadFile에서 COM 포트 핸들 잡고있는중에 WriteFile로 동일 핸들 사용 불가능
답변 부탁드리겠습니다..
|