這兩天除錯驅動時碰到乙個問題,驅動載入之後,沒有執行init直接就解除安裝了。
bool apientry dllmain( handle hmodule,
dword ul_reason_for_call,
lpvoid lpreserved
)return
true;}
列印log:
printer:dll_process_attach
printer:dll_process_detach
驅動載入之後,沒有呼叫init函式。直接就退出來了。 分析
原因是:
wince的流式驅動函式模型為:
***_init
字首必須是三個字母。否則將不執行init函式。
附另外幾個驅動載入失敗的原因:
1. dll 沒有重新整理。
2. 登錄檔中的 prefix 選項的 值 與 ***不一致。
3. init 返回 0.
4. platform.bib 中沒有將 dll 載入到 nk 中。
WinCE流驅動載入的控制
前段時間整理了 wince下除錯串列埠的動態復用 基本實現了除錯串列埠與普通功能串列埠之間的動態切換。其中實現的方法有點欠缺,在重新燒錄或者公升級系統後,導致系統無法正常啟動。這算是個bug。該功能加上才幾天,就陸續有好幾個同事碰到。本來想著使用方便的,沒想到反而增添了一些麻煩。這個問題在實現時曾考...
原創)WINCE流驅動的動態載入除錯
免去重新生成nk image的麻煩,直接用應用程式除錯流驅動,高效快捷,透明可見。1.在evc下編譯驅動原始檔,生成驅動的dll.注意 在編譯時請注意project setting,要加入驅動的匯出檔案,即在project options 中加入 def ir.def 這一步很重要,否則驅動無法被應...
驅動模組(ko)檔案載入失敗分析
在實際工作中,通常出現sdk編譯出來的驅動模組,在最小系統中載入失敗,即insmod ko 失敗,disagree param with the version 等之類的提示。1.分析核心版本,uname a 一看,最小系統的核心版本和編譯sdk的核心版本一樣。因為sdk編譯出來就是乙個驅動ko,以...