并非是要写那种硬件底层的驱动。
而是类似虚拟驱动,或者说对现有硬件驱动接口的重新封装?比如我想实现 类似SOFTETHER那样 虚拟网卡 的功能, (不说它是如何使用物理网卡实现真实通信的)只说这个虚假的网卡是如何弄出来的?怎么让计算机识别出一个网卡,又让系统去自动使用这个“硬件” 需要涉及那些方面?
还有见过一个软件,是给聋哑人用的。 它封装了物理声卡的驱动。。 把声卡要发的声音全部检测出来,绘制出不同颜色和波长的图像。。
(让聋哑人也弄领会音乐,或者注意到系统的声音变化。这不同于一般播放软件带的波表效果。它数全面监测声卡驱动的,所以它不是兼容所有声卡,只对特定芯片有效。)
小弟ASM不好,系统硬件的知识也不高。。 作真正的驱动怕是没啥戏了。。 但是希望可以了解一下虚拟硬件驱动方面的技术。。
希望大侠们赐教啊!!
而是类似虚拟驱动,或者说对现有硬件驱动接口的重新封装?比如我想实现 类似SOFTETHER那样 虚拟网卡 的功能, (不说它是如何使用物理网卡实现真实通信的)只说这个虚假的网卡是如何弄出来的?怎么让计算机识别出一个网卡,又让系统去自动使用这个“硬件” 需要涉及那些方面?
还有见过一个软件,是给聋哑人用的。 它封装了物理声卡的驱动。。 把声卡要发的声音全部检测出来,绘制出不同颜色和波长的图像。。
(让聋哑人也弄领会音乐,或者注意到系统的声音变化。这不同于一般播放软件带的波表效果。它数全面监测声卡驱动的,所以它不是兼容所有声卡,只对特定芯片有效。)
小弟ASM不好,系统硬件的知识也不高。。 作真正的驱动怕是没啥戏了。。 但是希望可以了解一下虚拟硬件驱动方面的技术。。
希望大侠们赐教啊!!
解决方案 »
- 返回DownloadResponse的类型,在命名空间内应该加什么
- 一个关于{get;set;}和数据存放在内存地址的原理(菜鸟)
- 能存放自定义的结构,并能对其合理排序以及修改的数据类型是什么?
- 帮忙看看,给分的
- 如何判断一个column name是否属于某个DataRow
- listview 怎样设置表格的高度???
- 鼠标不动10分钟,则自动从一个WINFORM跳到另一个WINFORM,怎么实现?
- 大家哪位有关于GDI+做开发的资料。
- C#线程问题,不太明白请指点
- KeyDown事件新手问题!
- 导出EXCEL乱码的问题.
- C# ThreadException 和 UnhandledException的区别?
其实不必是具体例子的,
可以是正对虚拟硬件驱动的一个整体介绍,理论体系的说明。。谢谢。。
细节问题可以以后慢慢研究和另开贴。
希望各位给讲讲入门。。
是否需要 WDK呢?
别说c#,就算C++开发驱动也很勉强,ddk里面例子基本都是C语言写的。
要么开发嵌入式可以使用C# 的MF框架
现在看来有点骗人,C#现在不能作或不能很好地操纵硬件,连MFC所具有的功能有些
也要用麻烦的互操作
所以楼主放弃C#作驱动,用C++吧
内核驱动不运行在用户模式下,用不来kernel32.dll, user32.dll等用户模式下的动态库。
而我认为托管程序一定会用到这些库的。用户模式的驱动相对"容易"开发。不过用户模式驱动类似于过滤器,只能作为虚拟驱动来用。
在XP,Vista以上可以用User-Mode Driver Framework (UMDF)来进行开发。UMDF采用COM接口的方式,是有可能由C#遵循特定的接口来进行开发。
不过可惜的是,UDMF并不采用COM的注册-装载的方法(通常用CoCreateInstance),而是用了DIY的方式。
因此,该dll必须导出一些特定函数,用来加载COM:
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer而C#并不能直接开发有导出函数的dll。因此需要用C++等开发语言作一个能导出函数的壳,来具体调用C#程序。
有好事者自称成功试验了该种方法,具体见Matt Davis的 Managed UMDF breathes!
内核驱动不运行在用户模式下,用不来kernel32.dll, user32.dll等用户模式下的动态库。
而我认为托管程序一定会用到这些库的。 用户模式的驱动相对"容易"开发。不过用户模式驱动类似于过滤器,只能作为虚拟驱动来用。
在XP,Vista以上可以用User-Mode Driver Framework (UMDF)来进行开发。 UMDF采用COM接口的方式,是有可能由C#遵循特定的接口来进行开发。
不过可惜的是,UDMF并不采用COM的注册-装载的方法(通常用CoCreateInstance),而是用了DIY的方式。
因此,该dll必须导出一些特定函数,用来加载COM:
DllCanUnloadNow
DllGetClassObject
DllRegisterServer
DllUnregisterServer 而C#并不能直接开发有导出函数的dll。因此需要用C++等开发语言作一个能导出函数的壳,来具体调用C#程序。
有好事者自称成功试验了该种方法,具体见Matt Davis的 Managed UMDF breathes!
----13楼