阅读:1901回复:5
有实际的设备名有什么不好?
WDM设备驱动程序开发指南》中的驱动程序例子都没有设备名,为什么?
谢谢 |
|
最新喜欢:mapofl
|
沙发#
发布于:2001-06-30 15:43
安全问题。FDO没法由系统管理员指定打开时访问权限,而PDO就可以。当你命名一个设备时,打开的对象为FDO,通常给于的权限为ALL ACCESS,而且你不能修改(当然了,存储设备由点不一样)。而使用INTERFACE来命名一个设备,打开的对象为PDO,你可以控制该对象的属性。
而且,使用INTERFACE GUID的方法,命名是语言无关的。 |
|
|
板凳#
发布于:2001-07-03 10:22
FDO与PDO有何异同?
|
|
地板#
发布于:2001-07-03 11:10
在WDM中,每个设备最少需要两个DEVICE OBJECT一个是PDO,管理该设备和计算机的连接(电源的开与关、处理总线的协议),它对应着BUS DRVIER;另一个是FDO,即FUNCTION DEVICE OBJECT,对应者我们通常理解的那个驱动程序――即FUNCTION DRIVER。
如果你用名字打开一个设备时,是打开PDO还是FDO都不重要,因为你随后发的IRP_MJ_READ、IRP_MJ_WRITE等FDO DRIVER都能看到。 当你不给你的设备名字,而是给它一个接口时,你在打开设备时,实际上时打开的PDO,同时,只有PDO的安全(存取)属性时用户可以控制的。所以,你如果要从APPLICATION中访问设备,最好给它一个接口。 PDO、FDO是内核用来管理设备的数据结构。 如果你知道面向对象的话,就很容易理解这种管理方法,在NT中有一个OBJECT MANAGER就是来统一管理这些对象的。 |
|
|
地下室#
发布于:2001-07-07 15:56
我现在做一个USB驱动程序,其中AddDevice部分就是用的命名设备,然后用symbollink创建一个对外部程序可见的名字。
看了你帖子中的“……命名是语言无关的”,我想请问一下,这怎么理解? 另外,我的这个驱动程序好像是只认Intel的主板,问题可能出在哪里呢? |
|
|
5楼#
发布于:2001-07-07 16:31
就是说,使用接口和接口的描述符(就是GUID),就不用发愁给自己的设备取个什么动听的名字了。这些在WALTONEY的书上写的很详细。应该多看看,如果不熟,就多看几遍。我就已经看了6遍了,虽然很多东西都还没有弄懂,但我发现每看一遍都会有很多的收获,对以前的不明白的东西都会有进一步的理解。怪不的别人说,看书不在乎多,而在乎精。我想,对于WDM来说,看看WALTONEY再加上WIN2KDDK Documentation就行了,剩下的就是看实例和动手了。
另外,我对硬件目前可以说一无所知,倒是很想得到你们有实战经验的人指点指点,SORRY。 |
|
|