Wince系统在加载camera驱动时,在调试串口总输出下面的错误:
RaiseException: Thread=83c41640 Proc=80f263a0 'device.exe'
AKY=00000005 PC=80247944(NK.EXE+0x00047944) RA=80244fdc(NK.EXE+0x00044fdc) BVA=00000000 FSR=00000000
叫负责这个驱动的同事找原因,一直找不到。今天有时间,我亲自跟踪了一下。发现Cam_Init()执行到
HWND CameraHwnd0 = FindWindow(L"xxxxx" ,NULL)
这个函数时,内核输出异常。这就想不通了,这个函数我在其他驱动中有类似的成功应用啊,为什么在这就出现问题了呢?
后来顿悟,FindWindow是内核函数,是不是camera驱动加载时,这个函数还没初始化呢?找到camera的注册表:
[HKEY_LOCAL_MACHINE/Drivers/BuiltIn/Camera]
"Prefix"="CIS"
"Dll"="camera.dll"
"Index"=dword:1
"Order"=dword:0
发现"Order"=dword:0,我把它改为dword:22,重新makeimage,下载运行,在没有出现异常,呵呵。