|
最近在2440上写了motorola L6我手机的USB驱动. 现在驱动能够被加载. 也能读取数据和设备描述符等. 但是有一个问题就是每次拔出我的设备时候. CE系统不调用我的回调函数. 以下是我注测回调函数的过程. 这种现象导致我手机拔出了. 但系统并没有释放USB设备资源. 请教在CE下搞过USB驱动的DX帮看看是什么原因导致不能调用回调函数.<br /> RETAILMSG(1, (TEXT("Activate Device! \r\n")));<br /> //激活流驱动接口,使应用程序能够以File API的方式来访问<br /> pDrv->hStreamDevice = ActivateDevice (wsSubClassRegKey, (DWORD)pDrv);<br /><br /> if (pDrv->hStreamDevice) <br /> {<br /> // register for USB callbacks<br /> //在设备拔出时由系统回调<br /> if (lpUsbFuncs->lpRegisterNotificationRoutine (hDevice, USBDeviceNotificationCallback, pDrv))<br /> {<br /> // Accept this device as our own<br /> *fAcceptControl = TRUE;<br /> } <br /> else<br /> {<br /> RETAILMSG(1, (TEXT("Can't register for USB Callbacks! rc=%d\r\n"),<br /> GetLastError()));<br /> }<br /> }<br /> else<br /> {<br /> RETAILMSG(1, (TEXT("Can't activate stream device! rc=%d\r\n"),<br /> GetLastError()));<br /> } |
|