我试图获取磁盘上文件的物理位置。 这是当前的代码:
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.')
此错误是"参数无效"。我使用了哪些参数错误?
答案 0 :(得分:0)
请查看this MSDN网站。
您的参数计数不正确。您需要一个输入缓冲区和一个输出缓冲区。输入是启动VCN(> = 0),句柄需要是备用流,文件,卷或目录句柄。输入缓冲区的类型为
typedef struct {
LARGE_INTEGER StartingVcn;
} STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER;