Windows 成功地加载了这个硬件的设备驱动程序,但找不到硬件设备。 (代码 41)

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Windows 成功地加载了这个硬件的设备驱动程序,但找不到硬件设备。 (代码 41)相关的知识,希望对你有一定的参考价值。

今日不知道为什么一开机发现无声音。
打开我的电脑设备管理器发现声音设备中“Microsoft kernel wave Audio Mixer”前有一感叹号。
打开注册列表想按照前辈们教的删除注册表项:HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Contro l\Class\4D36E965-E325-11CE-BFC1-08002BE10318 但显示却显示“无法删除 4D36E965-E325-11CE-BFC1-08002BE10318:删除项时出错”
不知道为什么,请求前辈指点。
而且小弟弟小弟想了解一下为什么会出现这种情况,是有病毒么?
谢谢!
请问有什么方法可以解决此问题?
(请前辈们别叫我重装系统哦)

1.鼠标右键点击“我的电脑”,选择“管理”->“设备管理器”->“声音、视频和游戏控制器”,右键点击带黄色感叹号的Microsoft Kernel Wave Audio Mixer,选择『更新驱动程序』
2.在弹出的对话框中选择『从列表或指定位置安装(高级)』,点『下一步』
3.选择『不要搜索。我要自己选择要安装的驱动程序』,点『下一步』
4.在弹出的“硬件更新向导”对话框中选择“显示兼容硬件”下的Microsoft Kernel Wave Audio Mixer(也可能只有这么一个选项),继续点『下一步』
5.随后就是自动安装驱动的过程了……
6.装好之后,点击『完成』。再打开“设备管理器”看看,此时感叹号已经没有了。
7.如还有感叹号,请重启计算机后再打开看一下,这时应该就没有了。再看看右下角任务栏中的“音量”图标也出现了,放歌曲试一下。
祝您好运``呵呵``
参考技术A 这说明你的声卡驱动没有安装正确,或者有冲突,你应该卸载该驱动,然后找主板自带的光盘重新安装,如果不知道是哪个,就把所有的驱动都装一遍,没有坏处的
重新安装主板驱动!
参考技术B 声卡出了问题,在设备管理器里面检测硬件改动,然后更新驱动看行不行,万一还不行,有可能是声卡坏了 参考技术C 这个跟删不删注册表没关系。
卸载/重新安装主板驱动,然后再安装声卡驱动!因为声卡驱动是基于主板驱动运行的。
参考技术D 卸载Microsoft kernel wave Audio Mixer,再添加硬件OK~!

Windows 设备管理器和硬件 ID

【中文标题】Windows 设备管理器和硬件 ID【英文标题】:Windows device manager and hardware IDs 【发布时间】:2009-05-09 15:34:01 【问题描述】:

我很好奇 Windows 设备管理器如何获取设备的硬件 ID,即使尚未为该设备加载任何设备驱动程序。有人知道 Windows 是如何处理这个问题的吗?

在相关说明中,我有兴趣支持我们正在编写的软件的语言本地化;设备和/或驱动程序是否可以以本地化方式报告其友好名称和描述?是否已经有这方面的普遍做法?

感谢您的宝贵时间。

【问题讨论】:

【参考方案1】:

首先,要了解加载驱动程序的顺序,建议您将设备管理器切换到查看|设备按连接方式

如您所见,这些设备位于其总线驱动程序下方。对于 PCI 设备,它将是“PCI 总线”。对于 USB 设备,它将是它们的 USB 集线器。每个总线驱动程序对于如何格式化标识符字符串都有自己的想法:

设备实例 ID 硬件 ID 兼容的 ID 位置等

它返回它们以响应IRP_MN_QUERY_IDBusQueryInstanceIDBusQueryHardwareIDsBusQueryCompatibleIDs)和IRP_MN_QUERY_DEVICE_TEXTDeviceTextDescriptionDeviceTextLocationInformation 等)

当然,由于总线驱动程序首先枚举了设备(即创建了您所看到的子设备)(通过适用于总线的任何标准接口;例如 USB 上的“获取设备/字符串描述符”),它知道他们的供应商 ID、产品 ID 等。

此时不必加载设备的驱动程序。事实上,它无法加载。设备 ID 正是指示 PnP 系统与设备匹配的驱动程序。

关于本地化:

与提供用于设备匹配的不透明字符串的IRP_MN_QUERY_ID 不同,IRP_MN_QUERY_DEVICE_TEXT 信息确实旨在本地化。为此,您会在输入数据 (Parameters.QueryDeviceText.LocaleId) 中收到请求的区域设置 ID (LCID)。

[正如 Alphaneo 所指出的,USB 集线器驱动程序可能会将此 LCID 向前传递给 USB 设备(在 Get String Descriptor 请求中),希望 USB 设备本身具有本地化字符串。]

【讨论】:

【参考方案2】:

顶层过程称为枚举。大多数现代设备总线都支持一种机制,让操作系统可以查询总线并确定哪些设备连接到总线。

PCI 系列总线都支持枚举。 PCI 总线有一个特殊的enumeration space 就是为了这个。这就是“即插即用”ID 的来源。

设备 ID 唯一标识总线上的设备,并使操作系统能够为该设备找到正确的驱动程序。

其他总线,包括 USB 和 FireWire 都有枚举策略

【讨论】:

【参考方案3】:

设备 ID,是设备提供的信息的组合。例如,对于 USB 设备,字符串基于 VID 和 PID(供应商 ID 和产品 ID)。现在,如果没有加载驱动程序,这将不会发生。至少需要为操作系统加载一些驱动程序、总线驱动程序才能获取设备 ID。

现在,对于语言支持,我想对于 WDM 驱动程序,有一个 QUERY_LANG 之类的东西,我记不太清了,或者像 USB 之类的一些设备有语言 ID 支持。此语言 ID 确定产品描述符字符串的语言。

【讨论】:

【参考方案4】:

请注意,硬件标识符/序列号与真正的唯一硬件 ID 之间存在差异。也许这会更好地解释它: http://www.soft.tahionic.com/download-hdd_id/hardware%20ID%20programmer%27s%20DLL.html

【讨论】:

该链接中的有趣库。

以上是关于Windows 成功地加载了这个硬件的设备驱动程序,但找不到硬件设备。 (代码 41)的主要内容,如果未能解决你的问题,请参考以下文章

Windows 设备管理器和硬件 ID

win10提示硬件不支持

解决Windows无法加载MTP设备

LINUX设备驱动程序如何与硬件通信

CentOS 6开机启动流程理论篇

加载驱动失败怎么办