我有一个VB.NET版由于BSOD错误而在客户端计算机上崩溃的应用程序。。。内核数据页错误。
此错误发生在我的程序执行两个操作时:
-
锁定计算机
-
以BackgroundLoop模式播放声音
<DllImport("user32")> _
Public Shared Sub LockWorkStation()
End Sub
My.Computer.Audio.Play(My.Resources.ResourceManager.GetStream("somesound"), AudioPlayMode.BackgroundLoop)
现在,这个声音循环直到用户重新登录。我的软件检测到会话状态切换并停止播放声音。有时当我重新登录时,声卡会在一瞬间播放垃圾数据,而不是音频缓冲区的其余部分。我觉得这和会话切换有关。
我的客户会不会在锁定计算机时出现内存损坏的问题?
我为这篇文章的模糊性道歉。。。我不知道从哪里开始,因为我自己无法再现这个问题。
编辑:
如果让声音自己播放,即使没有锁定电脑,最终电脑会锁定,然后是蓝屏。在锁定的同时播放声音会使其更快发生。
编辑#2:
所以我看到它失败了。声音循环开始正确播放,但很快切换到垃圾数据循环。这就好像它只是读取内存中的一个随机位置并循环。非常奇怪的行为!
毕竟是硬件。显然,这种型号的笔记本电脑有一个问题,扬声器安装在硬盘驱动器的正上方。当播放声音很大时,会产生各种各样的问题。