VXD可以在win2000下使用吗 ? 只能用WDM ?

olo 2000-12-10 04:12:00
...全文
216 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
my8848 2000-12-17
  • 打赏
  • 举报
回复
200分啊!!!!
my8848 2000-12-17
  • 打赏
  • 举报
回复
很抱歉,我好久没来。
my8848 2000-12-17
  • 打赏
  • 举报
回复
200分啊!MY GOD

Windows 2000驱动程序的设计
---- 本文介绍了Windows 2000 WDM驱动程序结构及其编写的注意事项,最后给出了一
个简单的WDM驱动程序及客户端程序的原码(Zip,24KB),希望能对大家有所帮助。
---- 1. 简介:

---- Windows 2000原名Windows NT 5.0是继Windows NT 4.0的新一代操作系统,它不
但继承了Windows NT 4.0的种种优点,而且在技术上又有了许多的突破,其中一项就是
对驱动程序结构的变化,即引入了全新的WDM (Win32 Driver Model)的驱动程序构架。
说是新技术,其实早在1997年Microsoft就提出了该项技术并在Windows 98中得到了充
分的应用,换句话说,Windows 98也支持WDM。这样WDM就成为了一个跨平台的驱动程序
模型,不仅如此WDM驱动程序还可以在不修改源代码的情况下经过重新编译后在非Intel
平台上运行,可以不夸张的讲WDM算得上是21世纪的驱动程序构架。

---- 2.WDM的工作原理:

---- WDM是在NT 4.0驱动程序结构上发展起来的,所以它与NT 4.0的驱动程序极为相
似,但是它却有了本质上的提高,比如它支持USB、IEEE 1394、ACPI等全新的硬件标
准。虽然Windows 98与Windows 2000都支持WDM,可是并不意味着Windows 98下的VxD可
以在Windows 2000下运行,而NT下的VDD却可以在Windows 98下运行。不过原先准备在
两个平台上同时运行需要编写两个截然不同的驱动程序,而现在只需要编写一个WDM驱
动程序就可以了。同NT 4.0驱动程序一样,WDM驱动程序也是分层的,即不同层上的驱
动程序有着不同的优先权,而Windows 9x下的VxD则没有此结构。另外,WDM还引入了功
能设备对象FDO(functional device object)与物理设备对象PDO(physical device
object)两个新概念来描述硬件,一个PDO代表一个真实硬件,在驱动程序看来则是一
个FDO,见图1。另外值得注意的是,一个硬件只允许有一个PDO,但却可以拥有多个
FDO,而在驱动程序中我们不是直接操作硬件而是操作相应的PDO与FDO。在Ring-3与
Ring-0通讯方面,操作系统为每一个用户请求打包成一个IRP(IO Request Packet)结
构,将其发送至驱动程序并通过识别IRP中的PDO来识别是发送给哪一个设备的。另外,
在驱动程序的加载方面WDM既不靠驱动程序名称也不靠一个具有某种特殊意义的ID,而
是依靠一个128位的GUID来识别驱动程序(Windows下许多东西都是靠此进行识别的)。

---- 3.具体实现:

---- 同许多应用程序一样,WDM驱动程序是PE格式的,但是它却没有WinMain或main这
样的入口,取而代之的是DriverEntry:

NTSTATUS DriverEntry(IN PDRIVER_OBJECT DriverObject,
file://不同于前面的PDO

IN PUNICODE_STRING RegistryPath)
{
DriverObject- >DriverExtension- >AddDevice =
AddDevice; // DriverExtension

中存放着驱动程序扩展信息,包括设备所需要的硬件资源等。
DriverObject- >MajorFunction[IRP_MJ_CREATE]
= RequestCreate;
DriverObject- >MajorFunction[IRP_MJ_CLOSE]
= RequestClose;
DriverObject- >MajorFunction[IRP_MJ_DEVICE_CONTROL]
= RequestControl;
DriverObject- >MajorFunction[IRP_MJ_PNP]
= RequestPnp;
return STATUS_SUCCESS;
}

---- 在DriverEntry驱动程序要向操作系统登记并注册一些消息处理器,而且还要指明
是否对驱动程序输入输出的数据进行缓冲,另外还要我们提供一个AddDevice例程来把
驱动程序添加到驱动程序堆栈中。其中,IRP_MJ_XXXXX为驱动程序所收到的系统消息,
RequestXXXXX为相应的消息处理函数。在客户端程序中,我们一般要采用
DeviceIoControl通过自定义的控制码与驱动程序通信(在VxD中大多也采用这种方
式)。看看驱动程序所收到的系统消息,我们不难发现当用户调用DeviceIoControl时
操作系统就会向驱动程序发出一条IRP_MJ_DEVICE_CONTROL消息,以触发
RequestControl消息处理函数。

NTSTATUS RequestControl(IN PDEVICE_OBJECT
DeviceObject, IN PIRP Irp)
{
PIO_STACK_LOCATION IrpStack;
ULONG ControlCode;
ULONG InputLength,OutputLength;
NTSTATUS status;

IrpStack=IoGetCurrentIrpStackLocation(Irp);
file://获取当前IRP所在的I/O堆栈
ControlCode=IrpStack- >Parameters.DeviceIoControl.
IoControlCode; file://取得控制码
InputLength=IrpStack- >Parameters.DeviceIoControl.
InputBufferLength; file://取输入缓冲区大小
OutputLength=IrpStack- >Parameters.DeviceIoControl.
OutputBufferLength;//取输出缓冲区大小
switch(ControlCode)
{
case HELLOWDM_IOCTL_HELLO: DbgPrint
("Hello from WDM.\n");//向调试器输出字符串
status=STATUS_SUCCESS; file://置返回值
break;
default: status=STATUS_INVALID_DEVICE_REQUEST;
file://输入的控制码不支持
}
return CompleteRequest(Irp, status, 0);
file://调用CompleteRequest通知操作系统完成IRP操作
}

---- 在客户端方面,先调用Setupapi.dll中的 SetupDiGetClassDevs并用上面提到的
128位 GUID建立Ring-0与Ring-3接口:

---- HDEVINFO info=SetupDiGetClassDevs ((LPGUID)&GUID_HELLOWDM,NULL,
file://GUID_HELLOWDM 是128位GUID NULL,DIGCF_PRESENT|DIGCF_INTERFACEDEVICE);
然后使用SetupDiEnumDeviceInterfaces 对所获得的接口进行枚举以获得接口数据,接
着连续两次调用SetupDiGetDeviceInterfaceDetail 获得接口详细信息,其中包括调用
CreateFil e所需的一个型为\\.\0000000000000004#
{3d93c5c0-0085-11d1-821e-0080c88327ab} 的字符串,最后调用方法和VxD的调用大体
相同这里就不赘述了。不过由于使用了 Setupapi.dll中的API所以还需要使用
SetupDiDestroyDeviceInfoList来释放所申请的资源。

---- 4.几点说明:

---- 由于WDM是跨平台和跨操作系统的的驱动程序模型,所以在编写时一定不要使用汇
编。另外,在编写时还应注意对IRP_MJ_PNP消息的响应以及其他系统消息的传递,这里
的传递是向其它在驱动程序堆栈中的驱动程序而不是向客户端程序,详细的信息请参考
本文所提供的例程。最后,由于笔者写此文章时Windows 2000尚未正式发布,一切的编
写工作都是在Windows 98上用98DDK与VC6.0完成的,并且用Numega SoftIce 4.0调试通
过。

my8848 2000-12-17
  • 打赏
  • 举报
回复
打开“金笼子”VXD技术漫谈


  说起VxD技术,很多接触电脑的人都会感到陌生,不过提起CIH病毒,我相信您一定
不再摇头。

  有过一定Windows编程经验的人可能听说过VxD这个词。80386的保护模式给了我们
非常多的“保护”,对于一个不懈地追求自由的人来说,“镀金的笼子也是笼子”,翻
遍Windows编程的书籍,也许最终只找到这样一扇通向自由的门:试一试VxD。


  VxD是什么?为什么CIH会如此猖獗?


  VxD = Virtual “something" Device,这里的x代表Something。比如说VKD代表
Virtual Keyboard Device(键盘驱动),VPICD 代表 Virtual Programmable
Interrupt Device(可编程中断控制器驱动)。VxD是Windows 3.1、Windows 95的驱动
程序模型(Windows 98也支持VxD)。

  在很多人的印象中,VxD是与硬件设备打交道的,对于软件来说没有太大的作用,
其理由之一是:用来开发VxD的DDK一般来说都分发给硬件开发商,对于搞软件开发的人
来说,SDK才是看家本领,而SDK中对于VxD却是言及甚少。这种想法可是大错而特错
了。

  由于VxD运行在系统的Ring 0级,拥有与操作系统同等的级别,所以,VxD可以最大
程度地帮助我们走出80386保护模式强加给我们的“镀金的笼子”。我们就拿最近轰动
一时的CIH病毒来说一说VxD这柄利剑的强大。

  CIH运行在Ring 0,挂接IFS(Installable File System)服务,截获File
Opening操作,然后把自己“传染”到别的PE格式的文件中,如果到了该发作的时间,
它就攻击主板的Flash Memory。

  CIH之所以能破坏硬件资源(通过攻击主板的Flash Memory,达到破坏硬件的目
的),正是因为它利用了VxD技术。对于一般的运行于Ring 3的Windows应用程序来说,
想破坏主板的Flash Memory是不可能的,因为这是80386保护模式对于代码权限的盘查
所不允许的,其结果顶多是引起操作系统异常,也就是在Windows中经常出现的、令用
户心跳加速的、蓝底白字的“General Protection Fault”,在这里,我们该感谢那个
“镀金的笼子”,至少它使我们免受邻居家那个只学过Turbo C编程的小孩的搔扰。


  除了搞破坏,VxD还可以用来做些什么呢?


  在这里我简单谈一下VxD的应用。

  由于VxD可以虚拟根本不存在的硬件,因此,可以利用VxD虚拟硬件狗来破解一些有
版权的软件的保护(怎么又是干坏事?我只是想告诉硬件狗的制造者:有些吝啬鬼想通
过这种手段来省银子,早作提防啊!)。

  由于VxD工作在操作系统的最底层,所以,掌握它 能使你具备扩展操作系统的能
力。有没有想过在Windows 95里按下Ctrl+Alt+Delete键,而后弹出的是你自己设计
的对话框(聪明的你一定可以发挥你天才的想像力,比如说显示一张你女朋友的照片,
以提醒自己关了电脑之后别忘了去赴约会),VxD可以帮助你跟Windows 95开开玩笑。

  好吧,说点正经的应用。想不想利用VxD来作些“实时”控制之类的东西?当然,
作实时工控,首选的操作系统还是DOS,但是如果你经不住Windows那张漂亮面孔的诱
惑,也可以在Windows下作“准实时”控制应用。一般来说,通过VxD的协助,在很多情
况下,我们还是可以获得比较满意的实时效果的。据测试,486/66的PC机上运行
Windows 95,在没有别的应用程序干扰的情况下,VxD可以处理10kHz的硬件中断,不会
漏掉一个中断!精心设计你的应用程序和VxD(最好再买台好点的电脑),相信你可以
获得满意的“实时”效果。

  再讲一个有趣的应用吧(今天有点发晕了,平时我可不大爱吹牛的)。如果你有一
堆16位的DLL,(假设你曾在Windows 31下作过应用程序开发,并曾为讨老板的欢心
而奋力地写过许多功能不错的DLL),而你又懒得通过重写代码或者利用烦琐的Thunk移
值到Windows 95下,那么,试一试VxD,可能会给你“它山之石可攻玉”的经历。当
然,我的前提是你对于VxD已经有了比较多的认识并有一些实战经验,否则你大概会因
此导致神经衰弱的。

  再说一个比较有趣的应用。想不想使DOS TSR、Win16应用程序、Win32应用程序之
间产生一些协作?想不想打破Win32应用程序4GB独立线性地址空间带来的限制?通过
VxD作中介,你会发现原来“万物通于一理”。别相信坐在你对面的那个权威的
“No”,相信你自己。

  对于VxD,我们已经说得够多了,也许你已经兴奋得想立刻去书摊上找本《21天轻
轻松松掌握VxD技术》来一读为快了。先安静会儿,现在开始泼冷水。


  VxD的明天依然美好吗?


  1996年的Windows Hardware Engineering Conference(WinHEC)会议上,
Microsoft宣布了一种新的Windows设备驱动程序模型——Win32 Driver Model
(WDM)。这种新的设备驱动程序模型将成为Windows 2000(即Windows NT 5.0)的核
心。

  这个消息令从事Windows设备驱动程序(VxD)开发的人感到沮丧(虽然大家早已预
料到Windows系列与Windows NT系列最终将走到一起)。WDM的浮出水面把一个吃尽苦头
的VxD开发者又推到了一个新的起跑线上。如果你曾去DDK的汇编代码里观光过,你一定
可以体会这个消息对VxD开发者是个沉重的打击,而对于Windows NT设备驱动程序
(Kernel Mode Driver)者来说,却是另一番心情——因为WDM基本等于Kernel Mode
Driver+Plug and Play。

  VxD将让位于WDM,现在令我们欣慰的是Microsoft宣布Windows 98(Windows 98支
持VxD)可能会坚持到200X年,Windows 2000的诞生也许在2000年之后。在这期间,掌
握VxD技术的你还是可以主动要求老板给你加薪的。即使到了WDM一统天下之时,也不用
灰心,因为无论是VxD还是WDM,都要求开发人员对计算机硬件有着全面而细致的了解。
通过VxD的锻炼,你至少熟悉了计算机的硬件资源并对保护模式有了比较深刻的认识,
这些东西都是将来从事WDM开发的硬功夫。

  好了,该说说Windows NT了。在Windows NT中,80386保护模式的“保护”比
Windows 95中更坚固,这个“镀金的笼子”更加结实,更加难以打破。在Windows 95
中,至少应用程序I/O操作是不受限制的,而在Windows NT中,我们的应用程序连这点
权限都被剥夺了。

  Windows NT的驱动程序模型与Windows 3.1、Windows 95是截然不同的。所以说,
如果有人告诉你,他的运行Windows NT的机器被CIH破坏了,你可以充一回专家,教训
教训他:“这是不可能的,记住,CIH利用的是VxD技术,而VxD在Windows NT中是跑不
动的”。

  在Windows NT中,存在三种Device Driver:

  1.“Virtual device Driver” (VDD)。通过VDD,16位应用程序,如DOS 和Win16
应用程序可以访问特定的I/O端口(注意,不是直接访问,而是要通过VDD来实现访
问)。

  2.“GDI Driver”,提供显示和打印所需的GDI函数。

  3.“Kernel Mode Driver”,实现对特定硬件的操作,比如说CreateFile,
CloseHandle (对于文件对象而言), ReadFile, WriteFile, DeviceIoControl 等操
作。“Kernel Mode Driver”还是Windows NT中唯一可以对硬件中断和DMA进行操作的
Driver。SCSI miniport Driver和 网卡NDIS Driver都是Kernel Mode Driver的一种特
殊形式。

  好了,就说到这里吧,对于Kernel Mode Driver我也知之甚少。

  如果你对Windows设备驱动程序开发有兴趣的话,建议你去如下的Web站点去逛逛。

  http://www.vireo.com/

   Vireo Software (VtoolsD) home page

  http://www.albany.net/~danorton/ddk/

   Dan Norton's DDK resource page

  http://www.microsoft.com/

   Microsoft home page

  http://www.ora.com/windows/

   O'Reilly Associates home page

  http://www.numega.com/

   Nu-Mega Technologies (Soft-ICE) home page

  http://www.microsoft.com/windows/thirdparty/hardware/

   Windows Hardware Technical Information for IHVs and OEMs

  http://www.bluewatersys.com/

   Blue Water Systems (WinRT) home page

  http://www.teleport.com/~usb/

   Universal Serial Bus Home Page

  http://www.tiac.net/users/waltoney

   DDK annotations

my8848 2000-12-17
  • 打赏
  • 举报
回复
你给我这么多分,我很难承受的。
抛弃VXD是微软的战略部署。

使用SEARCH功能收索下面的VXD

如何调试在设备驱动管理器中列出的未知设备[微软提供]
(作者:微软提供 2000年07月05日 09:37)

本文章的信息适用于:


Microsoft Windows 2000 Advanced Server
Microsoft Windows 2000 Datacenter Server
Microsoft Windows 2000 Professional
Microsoft Windows 2000 Server
摘要

当你用设备管理器观看Windows 2000上的安装设备驱动程序信息时候,你可以看到一个
未知设备,在其旁边有一个黄色的问题标记。决定这个未知设备的原因可能是很难的,
因为产生这种结果的线索很少。这篇文章阐述了一个设备管理器中列出的未知设备可能
的原因。



更多的信息

设备管理器作为未知而列出的一个设备最通常的原因是:



设备缺少驱动程序 当针对一个设备的设备驱动程序不可用的时候,设备管理器显示设
备是未知的,并且把它放置在Other devices文件夹中。这对于Universal Serial Bus
(USB) 和 Institute of Electrical and Electronics Engineering (IEEE) 1394
composite devices是非常普遍的。同样,当你查看设备管理器中的设备属性时,一个
"Error Code 1" 或者"Error Code 10"状态可以被显示。



注意:大多数的USB和IEEE1394 devices可以有计划地去正常运行,没有额外的设备驱
动程序,因为它们对于这些总线类型被配置并且被包含Windows 2000的驱动程序所激
活。可是,如果设备驱动程序在定义并提供的Windows 2000类驱动程序中不合适,那么
一个额外的设备驱动程序是必不可少的。如果总线不能识别设备,那么把设备解释为一
个复合的设备,并且在设备管理器中像这样地报告。



你正在使用一个Windows 98/95设备驱动程序 在Windows 2000系统中,你不可能像
Windows 98/95驱动程序那样使用虚拟设备驱动程序(.vxd)文件,并且试图在你的基
于Windows 2000计算机上安装可以导致设备在设备管理器中不被识别。当设备驱动程序
制造商没有正确地区分两个驱动程序或者假定Windows 2000能够使用Windows 98/95
.vxd文件的时候,这种事情势经常发生的。



未识别的设备ID 每一个硬件设别都有一个专用的、被即插即用来使用的标识号。这个
标识号能够由不同的类型组成,例如vendor ID,device ID,subsystem ID,
subsystem vendor ID或者 revision ID。如果一个device ID不存在或者你的基于
Windows 2000计算机没有识别device ID,那么设备管理器可以列出此设备未知。



注意:需要与硬件有虚拟挂钩的软件程序可以创建这些安装设备驱动程序。例如Compaq
Insight Manager创建虚拟安装设备驱动程序来通信并且监测硬件。把一台有Compaq
Insight Manager的计算机升级到Windows 2000可以在设备管理器中产生一个未知的设
备,因为软件的较旧版本没有对这些虚拟的设备提供正确的定义。连接两个总线类型的
设备,例如一个允许一个并行端口去仿效 Small Computer System Interface (SCSI)
或者 ATAPI 总线的设备驱动程序,这种类型的设备也在设备管理器中产生一个未知的
设备。



硬件或者固件有缺陷 有缺点的硬件或者固件能导致在设备管理器中的未知设备的可能
情况如下:



用软件创建的虚拟设备 设备的驱动程序没有显露出一个设备ID,并且没有用标准方法
来安装这些设备。一些制造商用Install Shield安装程序或者一个相似的方法来安装设
备。注意当设备在设备管理器中删除的时候,由其他方法安装的软件不能被彻底删除,
并且它需要你去检查你的基于Windows 2000计算机的注册表,同时校验所有注册已经被
删除。



用下面方法中的任何一个来确定是否一个未知的设备正由软件被创建:


可是这不是百分之百可以信任的,在安全模式下启动你的基于Windows 2000计算机可能
是确定未知设备是否由软件创建的最简单方法之一。当启动你的基于Windows 2000计算
机时,按F8键,选择Safe Mode,然后按回车键。如果未知设备不再出现设备管理器的
列表中,那么未知设备不是硬件这是很可能的。
如果你怀疑一个特殊的软件程序能够创建未知的设备,那么检查你的基于Windows 2000
计算机的开始目录,看看什么程序在引导的时候被配置并启动。同样,检查菜单条可以
给你提供一个关于什么程序被自动启动的提示,可是记住一些在引导中配置并启动的程
序并不再开始文件夹中出现。
Windows 2000系统信息工具(System Information Tool)在诊断一个未知设备产生的
原因可能是有用的。运行系统信息工具的操作步骤如下:
点击 Start,鼠标指向 Programs,再指向Administrative Tools,然后点击Computer
Management。
在 Computer Management对话框,点击 System Information文件夹,双击 Software
Environment文件夹,然后双击 Startup Programs文件夹。
关于每个程序在引导时候的配置并启动的一个详细的列表出现。
然后,你应该检测事件日志中与这些程序相关的错误,来注意是否有没有正常工作的程
序。如果你发现一个相关的事件,那么反安装相关的程序。注意一个程序产生一个未知
的设备的事实并不是程序不工作的一个暗示,除非程序依赖设备驱启动相应的程序。


你可以观察你的基于Windows 2000计算机的每一组件,包括使组件工作的驱动程序。为
了观察安装到你的基于Windows 2000计算机的组件,请如下操作:
点击 Start,鼠标指向 Programs,再指向 Administrative Tools,然后点击
Computer Management。
在 Computer Management对话框中,双击 System Tools。
双击 System Information,然后双击 Components文件夹。
检测Problem Devices文件夹,在Components文件夹处定位。
注意:下面的几步是按照以前的方法来查看Components文件夹的。

下面的栏目被列出:


Device 拦列出了设备通常的名字,或者与其相关的设备驱动程序的名字。
PnP Device ID拦列出了设备ID,例如Peripheral Component Interconnect (PCI)
ID,Industry Standard Architecture (ISA) ID,对于一些其它总线类型或者一个未
知的类型的ID 。
Error Code 栏列出了与特定问题相关的error code。在许多情况下,设备管理器的
error code有助于确定是什么产生了未知的设备。例如,如果你的基于Windows 2000计
算机产生一个"Bad or missing device driver"错误信息,那么三种登录类型被列于
Problem Devices文件夹,这依赖于设备类型:
PCI PnP Device ID: Device Name |
PCI\VEN_00000&DEV_0000&SUBSYS_00000000&REV_00\0&0000 | Error code
ISA PnP ID: Device Name | ?\PNP0000\0
Bad or Incompatible Device Driver: Device Name | ROOT\UNKNOWN\0000
列于Setupapi.log文件中的信息在验证什么原因产生了未知的设备是有帮助的,只要设
备有一个有意义的名称。有时列出的设备名称可能是令人误解的。例如,一个设备可能
作为一个串行设备在设备管理器中列出,实际上它与一个串行端口没有联系。当一个部
分Plug and Play ID是可用的,并且设备管理器将它解释为一个串行设备。这种解释也
可能因为由设备特指的一个兼容的ID而出现。再就是,这种情况可以通过定位没有正常
运转的开始程序而得到纠正。注意如果一个软件程序产生了未知的设备,那么简单地删
除设备管理器中的位置设备确实有用。你必须反安装产生未知设备的程序,然后重新启
动你的基于Windows 2000计算机。同样,如果你重新启动你的基于Windows 2000计算机
进入安全模式后,未知设备仍然被列出,那么联系Microsoft Technical Support要求
在删除设备方面得到援助。


硬件设备 分离硬件设备与虚拟设备相比是不太复杂的,并且你可以用下面两个方法中
的任意一个:


一次一个地从你的基于Windows 2000计算机中移除硬件设备,直到未知设备不再出现于
设备管理器的列表中。注意这个方法可能速度很慢,并且不总是可靠的。
检测设备驱动程序是否被数字标记。如果在设备驱动程序安装期间,Windows 2000发现
一个驱动程序没有被数字标记,那么将会产生下面的错误信息: Not Digitally
Signed
注意一个被数字标记得设备驱动器仍然作为一个未知设备在设备管理器中列出。同样,
注意如果它已经被禁用,那么使用者不会看到错误信息。



注意:关于数字标记的设备驱动程序的信息在下面的微软网站可以找到,并且通过使用
Device Driver Kit (DDK) 工具:http://www.microsoft.com/ddk/


阻止未数字标记得设备驱动程序的安装是可能的,在关键任务的服务器上去阻止那些试
图使服务器不稳定的操作方面,它也许是一个好的方法。为了阻止未标记的设备驱动程
序的安装可以这样做:


点击 Start,用鼠标指向 Settings,然后点击 Control Panel。
双击 System,然后点击Hardware标签。
点击 Driver Signing,然后点击Block - Prevent installation of unsigned files
点击 OK, 然后点击 OK


为了查看一系列的载入的没有被数字标记得设备,我们可以使用现面两个方法中的任意
一个:


查看Setupapi.log文件的一些条目,与下面的条目相似: The file
(D:\WINNT\inf\ntapm.inf) is not digitally signed, ignoring driver date.
Installing section epatapi_inst from d:\documents and settings\user name\my
documents\parallel port test drivers\epatapnt.inf An unsigned or incorrectly
signed driver (d:\documents and settings\user name\my documents\parallel
port test drivers\epatapnt.inf) was installed for Parallel ATAPI Adapter..
Error 0xe000022f: The third-party INF does not contain digital signature
information. Copying file d:\documents and settings\user name\my
documents\parallel port test drivers\epatapnt.mpd to
D:\WINNT\System32\DRIVERS\epatapnt.mpd. An unsigned or incorrectly signed
driver (d:\documents and settings\user name\my documents\parallel port test
drivers\epatapnt.mpd) was installed for Parallel ATAPI Adapter.. Error
0xe000022f: The third-party INF does not contain digital signature
information. where user name is a user name. user name处是一个用户名。
使用Sigverif.exe工具,它允许你创建一个列出未被标记并且已经安装到你的基于
Windows 2000计算机上的驱动程序登录文件。由Sigverif.exe工具创建的Sigverif.txt
登录文件被定位于你的基于Windows 2000计算机上的%SystemRoot%文件夹中,并且可以
通过一个文本编辑器(例如记事本)来查看。为了运行Sigverif.exe工具,请按下面操
作:
点击 Start,点击 Run,键入sigverif,然后单击 OK。
点击 Advanced,然后在 Search标签下点击 Look for other files that are not
digitally signed。
点击选择 Include subfolders查询框,然后点击 Browse。
定位然后点击%SystemRoot%\System32\Drivers 文件夹,点击OK,然后点击 Start


当你的计算机编译一个全面的未标记驱动程序列表时,你也许经历一段延迟。检测未标
记驱动程序的列表,然后检测驱动程序制造商是否有一个数字标记的升级驱动程序。



以USB技术要求的早期版本为基础的USB设备也许创建幻象设备,当设备被连接的时候,
它就会出现,然后当设备被解除连接的时候,它又会消失。同样,设备可以刚好运作,
但是也许产生一个不相关的未知设备,此设备经常是因为过时的或者错误配置的固件所
引起的。在这种情况下,联系设备制造商来升级固件。



如果用户为一个计算机已经发现并安装了的即插即用的设备手工安装一个驱动程序,那
么Ghosted devices也可能出现。通常情况下,当你Hardware Wizard手工安装设备的时
候,即插即用设备不会列出。因为用户没有注意列出的设备,所以它们可能假定它是不
被支持的,然后用另一个设备驱动程序强行安装,这样导致Ghosted devices出现项。
删掉Ghosted devices通常可以解决此问题。在这篇文章讨论的第三方的产品是由独于
微软的销售商生产制造的;我们不会对这些产品的可行性和可靠性作任何形式的担保。

olo 2000-12-10
  • 打赏
  • 举报
回复
my8848,请仔细说一下。
my8848 2000-12-10
  • 打赏
  • 举报
回复
不可以。
my8848 2000-12-10
  • 打赏
  • 举报
回复
你为什么问这个问题?
iProgram 2000-12-10
  • 打赏
  • 举报
回复
olo 2000-12-10
  • 打赏
  • 举报
回复
贫吧您
iProgram 2000-12-10
  • 打赏
  • 举报
回复
可以吗?不可以吗?

6,849

社区成员

发帖
与我相关
我的任务
社区描述
Windows 2016/2012/2008/2003/2000/NT
社区管理员
  • Windows Server社区
  • qishine
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧