打印

是什么原因导致不能调用回调函数

[复制链接]
1205|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
coke|  楼主 | 2008-5-10 09:59 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在2440上写了motorola L6我手机的USB驱动. 现在驱动能够被加载. 也能读取数据和设备描述符等. 但是有一个问题就是每次拔出我的设备时候. CE系统不调用我的回调函数. 以下是我注测回调函数的过程. 这种现象导致我手机拔出了. 但系统并没有释放USB设备资源. 请教在CE下搞过USB驱动的DX帮看看是什么原因导致不能调用回调函数.
    RETAILMSG(1, (TEXT("Activate Device! \r\n")));
    //激活流驱动接口,使应用程序能够以File API的方式来访问
    pDrv->hStreamDevice = ActivateDevice (wsSubClassRegKey, (DWORD)pDrv);

    if (pDrv->hStreamDevice) 
    {
        // register for USB callbacks
        //在设备拔出时由系统回调
        if (lpUsbFuncs->lpRegisterNotificationRoutine (hDevice, USBDeviceNotificationCallback, pDrv))
        {
            // Accept this device as our own
            *fAcceptControl = TRUE;
        } 
        else
        {
            RETAILMSG(1, (TEXT("Can't register for USB Callbacks! rc=%d\r\n"),
                      GetLastError()));
        }
    }
    else
    {
        RETAILMSG(1, (TEXT("Can't activate stream device! rc=%d\r\n"),
                  GetLastError()));
    }

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

104

主题

316

帖子

2

粉丝