wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 2)
来源:互联网 发布:ssd硬盘检测软件 编辑:程序博客网 时间:2024/06/16 08:45
作者:wanghanjiett
转自:http://blog.csdn.net/wanghanjiett/article/details/6849735
二、用vs2005建立用于动态加载&卸载驱动的程序
这部分困扰了我挺长时间,最后发现是我对函数理解有误,网上现有的程序也有很大缺陷。我最终采取的方法如下:
1、驱动注册
这部分核心是 ActivateDeviceEx()函数。但是,使用此函数的前提是首先将String.reg添加在注册表中(我就是在这里悲剧了好久)。函数具体用法网上有很多,我就不罗嗦了。
2、驱动卸载
这部分核心是DeactivateDevice()函数。但是,网上广泛采用的代码有一个很大的缺点:它们都是通过一个全局变量在两个按键响应函数间传递注册设备的句柄,这样,一旦只按了“注册”键就不小心退出程序,接下来就会有问题。我找到的方法是先用FindFirstDevice()查询到设备句柄,再用DeactivateDevice()卸载。代码如下:
BOOL flag;
HANDLE hFind=INVALID_HANDLE_VALUE;
DEVMGR_DEVICE_INFORMATION devInfo={0};
devInfo.dwSize=sizeof(devInfo);
hFind=FindFirstDevice(DeviceSearchByDeviceName,_T("STR1"),&devInfo);
if(hFind == INVALID_HANDLE_VALUE)
{
MessageBoxW(_T("FindFirstDevice出错"),NULL,MB_OK);
}
flag=DeactivateDevice(devInfo.hDevice);
if(flag == NULL)
MessageBoxW(_T("unload driver fail!"),NULL,MB_OK);
else
MessageBoxW(_T("unload driver sucess"),NULL,MB_OK);
至此,第二步完成。
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 2)
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 2)
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 1)
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 1)
- WinCE驱动的动态卸载
- WinCE驱动的动态卸载
- WinCE驱动的动态卸载
- WinCE驱动的动态卸载
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动(转)
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试与用EVC快速开发WINCE的流驱动
- WINCE流驱动的动态加载调试
- WINCE流驱动的动态加载调试
- WinCE驱动的动态加载
- WinCE驱动的动态加载
- Wince 驱动动态加载调试
- WinCE驱动的动态加载
- android 电话状态的监听(来电和去电)
- YII 如何在当前页面外部加载css,img,js文件
- 枚举转换字符串
- 解决Ajax在兼容模式下后台调用执行两次结果不变的问题(已解决)!
- poj 1981 Circle and Points(圆覆盖点问题)
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 2)
- Remove @Override annotation错误解决
- C#如何动态调用Web服务
- ffmpeg的av_read_frame学习
- setRepeatMode 和setRepeatCount 不生效问题
- 关于5分钟的理解
- wince驱动学习笔记(vs2005实现流驱动动态加载与卸载 1)
- xw总结5:shujubiaoczlsj
- C# 导出Excel的示例