1

我正在尝试获取磁盘上文件的物理位置。这是当前代码:

import win32file
import winioctlcon

handle = win32file.CreateFile(raw_input("File: "), win32file.GENERIC_READ, win32file.FILE_SHARE_READ | win32file.FILE_SHARE_WRITE, None, win32file.OPEN_EXISTING, win32file.FILE_ATTRIBUTE_NORMAL | win32file.FILE_FLAG_OVERLAPPED,None)
loc = win32file.DeviceIoControl(handle, winioctlcon.FSCTL_GET_RETRIEVAL_POINTERS,"",8192,None)

当我尝试运行代码时,出现此错误:

pywintypes.error: (87, 'DeviceIoControl', '\xfe\xfe\xe4\xf4\xf8\xee\xe8\xf8 \xf9
\xe2\xe5\xe9.')

此错误是“无效参数”。我用错了什么参数?

4

1 回答 1

0

请查看MSDN 站点。

您的参数计数不正确。您需要一个输入缓冲区和一个输出缓冲区。输入是起始 VCN (>=0),句柄需要是备用流、文件、卷或目录句柄。输入缓冲区的类型

typedef struct {
  LARGE_INTEGER StartingVcn;
} STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER;
于 2017-03-22T13:23:46.200 回答