wince6.0从驱动层拦截WM_DEVICECHANGE

lishiqi_ 2012-10-17 12:05:03
请教一下大牛们

wince6.0如何从驱动层拦截USB WM_DEVICECHANGE

能否给出具体一点的地方,在哪个函数之类的

谢谢啦

...全文
194 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
lishiqi_ 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 的回复:]

引用 3 楼 的回复:

在整个工程中搜索WM_DEVICECHANGE,找一下哪里发出了这个消息就知道了


是的,搜驱动的代码
[/Quote]

只搜到这么个地方,我不是很明白哦,麻烦帮忙看看撒:
/* ++

This function forces the FSD to dismount by unloading the streams interface.
This invokes our DSK_Deinit.
This deletes the active key in the registry, sends a WM_DEVICECHANGE
message, and triggers a NOTIFICATION_EVENT_DEVICE_CHANGE.

-- */
DWORD
DismountUpperDriver(
IN PSCSI_DEVICE pDevice
)
{
DWORD dwErr = ERROR_SUCCESS;

DEBUGMSG(ZONE_TRACE, (TEXT("USBDISK6>DismountUpperDriver\n")));

if (!pDevice || !pDevice->hStreamDevice)
{

dwErr = ERROR_INVALID_PARAMETER;

}
else
{
EnterCriticalSection(&pDevice->Lock);

if (DeactivateDevice(pDevice->hStreamDevice))
{

pDevice->hStreamDevice = NULL;
pDevice->Flags.FSDMounted = FALSE;

}
else
{
dwErr = GetLastError();
DEBUGMSG(ZONE_ERR, (TEXT("DeactivateDevice error: %d\n")));
TEST_TRAP();
}

LeaveCriticalSection(&pDevice->Lock);
}

DEBUGMSG(ZONE_TRACE, (TEXT("USBDISK6<DismountUpperDriver:%d\n"), dwErr));

return dwErr;
}
91program 2012-10-18
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 的回复:]

在整个工程中搜索WM_DEVICECHANGE,找一下哪里发出了这个消息就知道了
[/Quote]

是的,搜驱动的代码
lishiqi_ 2012-10-17
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

直接修改驱动,不发这个信息
[/Quote]

恩恩,是啊,关键是我不知道这信息是在哪个地方发出来的,纠结啊
91program 2012-10-17
  • 打赏
  • 举报
回复
直接修改驱动,不发这个信息
一介布衣萧萧 2012-10-17
  • 打赏
  • 举报
回复
在整个工程中搜索WM_DEVICECHANGE,找一下哪里发出了这个消息就知道了

19,524

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧