以下程序在我完全修补的 Windows 7 机器和同事的 Windows 7 机器上导致 BSOD - 系统配置非常不同,所以我认为这不是驱动程序问题。似乎某些东西无法处理仅包含零显示频率的显示模式的请求。这是在 Visual Studio 2012 Update 3 下触发 BSOD 的代码:
#include <windows.h>
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
DEVMODE mode = { 0 };
mode.dmSize = sizeof(DEVMODE);
mode.dmFields = DM_DISPLAYFREQUENCY;
ChangeDisplaySettings(&mode, CDS_FULLSCREEN);
return 0;
}
ChangeDisplaySettings()
在停止 BSOD 发生之前添加以下行:
mode.dmDisplayFrequency = 60;
BSOD详细信息是:
*** STOP 0x0000007E (0xFFFFFFFFC0000094, 0xFFFFF96000685577, 0xFFFFF88015313638, 0xFFFFF88015312E90)
*** cdd.dll - Address FFFFF96000685577 base at FFFFF96000680000, DateStamp 4d4a90a5
我将其发布为一个问题,因为我很感兴趣是否有其他人注意到它或有任何评论,并且还因此存在此特定 BSOD 的原因,以防它在未来对任何人有所帮助。
还对其他人是否也能够可靠地复制它感兴趣。
如果您发布了深思熟虑/有趣/相关的回复/答案/讨论,那么代表就是您的了!