我需要确定逻辑卷的大小并打印它。GetDiskFreeSpaceEx 将大小返回为 64 位数字(?)。我能用它做什么?
问问题
219 次
1 回答
1
你可以用它做任何你想做的事情,但是在 masm32 中进行计算有点尴尬。您应该能够填充使用 64 位整数的任何其他数据结构。也可以通过将值加载到 EDX:EAX 来对 64 位进行一些算术运算,例如除法(因此将前 4 个字节加载到 EAX,然后将接下来的 4 个字节加载到 EDX)。但是,请注意这里可能存在溢出,需要处理或避免。
如果您只想使用此函数打印出卷的大小,您可以调用 C 运行时库 printf 函数:
invoke crt_printf,chr$("GetDiskFreeSpaceEx, total bytes: %I64d%c"),
dqTotalBytes,10
但是,正如手册所说“要确定磁盘或卷上的总字节数,请使用IOCTL_DISK_GET_LENGTH_INFO。” 前面的代码只告诉你当前用户有多少可用。
于 2009-12-13T16:37:34.150 回答