阅读:2741回复:7
如何判断出列出的设备dosdevicename 和devicename是什么设备?
列出的设备dosdevicename 和devicename后,如何判断出它们是什么设备?
比如,计算机上有两块网卡,列出它的dosdevicename 和devicename 后并判断出它是网卡。 要求给出程序。 我不知道该问题到底值几分,如不满意可提出加分。 [编辑 - 3/29/02 作者: laser36] |
|
沙发#
发布于:2002-03-26 11:30
没做过
哪来的源码 试试获取设备对象 再查询对象的DeviceType |
|
|
板凳#
发布于:2002-03-26 15:54
没做过 Iamme 我在2000 DDK 中找到设备对象的DeviceType FILE_DEVICE_BEEP FILE_DEVICE_CD_ROM FILE_DEVICE_CONTROLLER FILE_DEVICE_DISK FILE_DEVICE_INPORT_PORT FILE_DEVICE_KEYBOARD FILE_DEVICE_MIDI_IN FILE_DEVICE_MIDI_OUT FILE_DEVICE_MOUSE FILE_DEVICE_NULL FILE_DEVICE_PARALLEL_PORT FILE_DEVICE_PRINTER FILE_DEVICE_SCANNER FILE_DEVICE_SERIAL_MOUSE_PORT FILE_DEVICE_SERIAL_PORT FILE_DEVICE_SCREEN FILE_DEVICE_SOUND FILE_DEVICE_TAPE FILE_DEVICE_UNKNOWN FILE_DEVICE_VIDEO FILE_DEVICE_VIRTUAL_DISK FILE_DEVICE_WAVE_IN FILE_DEVICE_WAVE_OUT FILE_DEVICE_8042_PORT FILE_DEVICE_MASS_STORAGE FILE_DEVICE_KS FILE_DEVICE_CHANGER FILE_DEVICE_DVD FILE_DEVICE_BATTERY 可是却不能找到它们的详细说明,无法判断是什么设备,当然多数可从字面猜出,可是那个代表网卡我依然不知道,能否注释一下? [编辑 - 3/26/02 作者: laser36] |
|
地板#
发布于:2002-03-26 16:40
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2002-03-26 17:44
Tom.Cat,你好:
你的回答给了我些启发,我打算写个过滤驱动程序,想加在WIN2000中的每个网卡设备上,当然前提是不知网卡的名字、数量,按你的提示,是在程序中搜寻注册表,可找出全部网卡,是吗? 另外,DriverEntry( IN PDRIVER_OBJECT pDriverObject, IN PUNICODE_STRING pRegistryPath) AddDevice( IN PDRIVER_OBJECT pDriverObject, IN PDRIVER_OBJECT pdo) 的参数也是注册表填入的,是吗?并请指点是那个项目指明的,好吗? 鄙人刚学驱动,问题可能够菜的,请多指教。 Tom.Cat,我很乐意给分,不过我发现每个贴子只能给一次分,所以我想在最后给分,Iamme 的回帖,我也打算给他分。 [编辑 - 3/26/02 作者: laser36] |
|
5楼#
发布于:2002-03-26 20:36
DriverEntry例程中的参数并不是注册表填入的,注册表只是一个数据库,负责调用这个例程并传以正确参数者是Win2000中一个非常重要的组件I/O Manager,它将驱动程序在注册表中的注册路径传入 IN pRegistryPath。
如果你需要写网卡的过滤驱,你可能需要NDIS驱动的知识,注册表中确实记载了系统中的网卡信息。并且一般的写一个Filter驱动的步骤如下: 1.定义一个 OBJECT_ATTRIBUTES objatr; 2.初始化设备属性结构: InitializeObjectAttributes() 3.ZwCreate(...)根据设备属性中填写的信息,打开到目标网卡驱动程序的句柄连接 4.ObReferenceObjectByHandle(...)得到设备句柄的相应指针 5.IoGetRelatedObject()得到可能已经挂接到目标网卡上的上层过滤驱动 6.IoCreateDevice()建立自己的设备对象准备挂接到目标网卡驱上。 7.IoAttacktoDeviceStack()将自己建立的设备对象挂接到目标设备栈的顶端。 8.ObDereferenceObject、ZwClose减少对特定对象的引象计数。 这些例程的具体用法可以参阅DDK 文档,也可以参阅本站提供的有关Filter Driver源码。另外我前几天提交的Filter File System Driver源码中有这些例程的详细用法。 Best regards ! |
|
|
6楼#
发布于:2002-03-26 21:18
用户被禁言,该主题自动屏蔽! |
|
7楼#
发布于:2002-03-27 20:38
用户被禁言,该主题自动屏蔽! |
|