Tuesday, May 16, 2006

MS document error.... >"<

前陣子客戶回報我們的 CE.Net ActiveX API 在 Windows CE.Net 4.1 下有無法連線的問題。
當時沒有太多時間處理,只發現了在 socket 連線後,第一次 read 前就發生了 error...

後來花點時間詳細看錯誤發生的位置,才發現原來是在 WSAEnumNetworkEvents() 時發生了
error code 10107。這是個什麼 error 呢!?沒想到相關資料還真少.... 從 winsock 去查這個 error code 根本查不到,原來 10107 是 system call failure~ 看到這理由還真傻了... 這是什麼錯誤!?

只好到 Google 到處亂翻了,在 MSDN, MS support 都找不到任何有用的資訊。
Google search result 也沒有,不過!還好還有 Google Groups 可以查。
一看,萬歲!!!剛好有一篇就是談到這個問題!

而更棒的是,有個好心人回答得很認真。
這個人叫做 Corey Burke,似乎是 MS Windows CE Networking team 的成員?

Corey 告訴了我一件重要的事情:
We didn't actually support the WSAEnumNetworkEvents and WSAEventSelect functions in that release. It was a documentation error that was caught too late to change it.
Oh, my god.........
難怪我們的程式會遇到 error 10107. 原來是文件資料有錯誤.
MS 文件告訴我們 CE.Net 4.1 有支援該 API,但是事實上是不支援~ 真的是整個 Orz