ERROR_INVALID_PARAMETER发生在Win10上的ReadFile()上,而不是Win7上



我正在尝试读取SD卡上的低级数据。我以管理员身份运行,并使用以下代码打开设备:

hDrive = CreateFile(StrDeviceCode.c_str(), GENERIC_READ, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);

StrDeviceCode通常是"\\.\HarddiskVolume5"或类似的(我也尝试过"\\.\PhysicalDrive5"或类似的。请放心,我知道这是我想要的设备(。

在Win7上这是有效的,但在Win10上则不然——我得到了一个有效的句柄,但ReadFile()返回ERROR_INVALID_PARAMETER

我已经在ReadFile()上阅读了所有与ERROR_INVALID_PARAMETER相关的问题,其中的答案从确保与扇区大小对齐到CreateFile()上的其他调整。

我使用的是相同的外置USB读卡器和SD卡。我试着阅读各种各样的长度,总是512的倍数,大多是512和4096。所以我已经涵盖了所有这些。

我尝试了许多不同的文件标志,如FILE_FLAG_WRITE_THROUGHFILE_FLAG_NO_BUFFERING,但都不起作用。

Win10在混音中加入了我遗漏的东西吗?

CreateFileA函数(fileapi.h(

物理磁盘和卷

直接访问磁盘或卷受到限制。有关更多信息,请参阅";在Windows Vista和Windows Server 2008中对文件系统和存储堆栈进行更改以限制直接磁盘访问和直接卷访问";在的帮助和支持知识库中https://www.betaarchive.com/wiki/index.php/Microsoft_KB_Archive/942448(原始页面不在http://support.microsoft.com/kb/942448)。

您可以使用卷管理功能将设备路径与驱动器号相匹配。

最新更新