【发布时间】:2017-08-14 14:38:35
【问题描述】:
我正在尝试获取磁盘上文件的物理位置。 这是当前代码:
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.')
此错误是“无效参数”。我用错了什么参数?
【问题讨论】:
-
当然参数无效,因为你调用
DeviceIoControl绝对不正确。比必须的参数少。STARTING_VCN_INPUT_BUFFER在哪里?RETRIEVAL_POINTERS_BUFFER在哪里? -
如何获取这些参数的值?
标签: python winapi handle createfile deviceiocontrol