【问题标题】:Why does this CreateFile() call cause a BSOD on Windows 8?为什么这个 CreateFile() 调用会在 Windows 8 上导致蓝屏?
【发布时间】:2013-05-06 19:40:55
【问题描述】:

如果我尝试运行它:

#include <Windows.h>

int main()
{
    CreateFile(
        TEXT("X:\\$MFT\\Folder"),
        FILE_READ_ATTRIBUTES,
        FILE_SHARE_READ | FILE_SHARE_WRITE | FILE_SHARE_DELETE,
        NULL,
        OPEN_EXISTING,
        0,
        NULL);
    return 0;
}

在任何进一步尝试访问X: 时系统死锁(以及在 Windows 8 上,随后出现蓝屏死锁)。
更新:X: 只是一个占位符;您可以将其替换为任何有效的驱动器。)

我花了一段时间才找到它,现在我找到了——但我很困惑:原因是什么?

【问题讨论】:

  • X 是映射的网络驱动器吗?您的描述当然听起来像是驱动程序中的错误。您从 BSOD 获得的错误代码是什么?您是否已发送崩溃报告?
  • @dlev: 不,X: 是一个占位符,如果你愿意,你可以用C: 替换它——如果它是C:,它崩溃得更快,实际上。我没有写C:,因为我担心有人会复制粘贴它,然后逐字逐句运行它并不小心让他的电脑崩溃。
  • 好的,文件名很重要,还是只是其他标志的组合导致了死锁/BSOD?
  • @dlev:\$MFT 部分很重要——系统似乎不希望主文件表以这种方式打开。然而,究竟是什么导致它崩溃,这让我感到困惑——它应该只是失败。 \Folder 部分可以是任何东西。

标签: windows winapi crash createfile bsod


【解决方案1】:

这是一个 NTFS 错误。

既然现在终于是publicly known,我将取消删除此问题并将其发布为答案。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-10-02
    • 1970-01-01
    • 2013-02-25
    • 2014-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多