并非是要写那种硬件底层的驱动。
而是类似虚拟驱动,或者说对现有硬件驱动接口的重新封装?比如我想实现 类似SOFTETHER那样 虚拟网卡 的功能, (不说它是如何使用物理网卡实现真实通信的)只说这个虚假的网卡是如何弄出来的?怎么让计算机识别出一个网卡,又让系统去自动使用这个“硬件”  需要涉及那些方面?
还有见过一个软件,是给聋哑人用的。 它封装了物理声卡的驱动。。 把声卡要发的声音全部检测出来,绘制出不同颜色和波长的图像。。
(让聋哑人也弄领会音乐,或者注意到系统的声音变化。这不同于一般播放软件带的波表效果。它数全面监测声卡驱动的,所以它不是兼容所有声卡,只对特定芯片有效。)
小弟ASM不好,系统硬件的知识也不高。。   作真正的驱动怕是没啥戏了。。 但是希望可以了解一下虚拟硬件驱动方面的技术。。
希望大侠们赐教啊!!

解决方案 »

  1.   

    http://www.newsmth.net/pc/index.php?id=wolfenstein&pno=12
      

  2.   

    3楼的朋友 那个连接是C++的。。 我更希望是C#的。。同样感谢。当然我会尽力看明白,作参考。其他朋友,有没有人给讲讲啊。。
    其实不必是具体例子的,
    可以是正对虚拟硬件驱动的一个整体介绍,理论体系的说明。。谢谢。。
    细节问题可以以后慢慢研究和另开贴。
    希望各位给讲讲入门。。
    是否需要 WDK呢?
      

  3.   

    记得有本书说过,c#功能强大,可以开发除驱动外几乎所有类型程序...   
    别说c#,就算C++开发驱动也很勉强,ddk里面例子基本都是C语言写的。
      

  4.   

    c/C++开发驱动
    要么开发嵌入式可以使用C# 的MF框架
      

  5.   

    在2000年,C#产生的时候,Delphi的功臣就说过了,C#是作驱动程序以外的一切程序
    现在看来有点骗人,C#现在不能作或不能很好地操纵硬件,连MFC所具有的功能有些
    也要用麻烦的互操作
    所以楼主放弃C#作驱动,用C++吧
      

  6.   

    首先,内核模式的驱动是没有办法了。
    内核驱动不运行在用户模式下,用不来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!
      

  7.   

    cs太高级了,都把底层封装了........驱动是直接面对硬件的东西用cs你还是一样要调用 api实在划不来哦
      

  8.   

    首先,内核模式的驱动是没有办法了。 
    内核驱动不运行在用户模式下,用不来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楼
      

  9.   

    ddk 开发驱动 DriverStudio