1

由于某种原因,当我的应用程序在某些硬盘配置(RAID、随机分区、通过单独的 IDE 控制器,而不是在操作系统分区上)上运行时,返回VirtualAlloc代码为.nullGetLastErrorERROR_INVALID_PARAMETER

除了(MEM_COMMIT | MEM_TOP_DOWN, PAGE_READWRITE)传入的标志之外,唯一的参数是计算为从磁盘几何获得的扇区大小的倍数的大小(不幸的是,由于 NDA 等原因,我无法发布代码)。

只是想知道是否有人有这方面的经验?或者如果有人知道为什么 Windows 可能会在属于 raid 或分区的磁盘上以不同方式处理页面大小的任何原因?非常感谢任何帮助,谢谢!

4

1 回答 1

0

问题与 DeviceIoControl 有关,当尝试返回 IOCTL_DISK_GET_DRIVE_GEOMETRY 时,在使用主硬盘以外的任何东西时似乎返回了完整的垃圾,我通过使用 GetDiskFreeSpace 解决了这个问题,而不是获取扇区信息并且一切正常

显然找出为什么 IOCTL_DISK_GET_DRIVE_GEOMETRY 是垃圾会是理想的,但我很高兴它有效!

于 2009-06-30T17:03:04.483 回答