首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >使用DeviceIoControl(FSCTL_GET_RETRIEVAL_POINTERS)时出现错误87

使用DeviceIoControl(FSCTL_GET_RETRIEVAL_POINTERS)时出现错误87
EN

Stack Overflow用户
提问于 2017-03-22 13:00:25
回答 1查看 799关注 0票数 1

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

当我尝试运行代码时,我得到了这个错误:

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
pywintypes.error: (87, 'DeviceIoControl', '\xfe\xfe\xe4\xf4\xf8\xee\xe8\xf8 \xf9
\xe2\xe5\xe9.')

此错误为“无效参数”。我用错了哪些参数?

EN

回答 1

Stack Overflow用户

发布于 2017-03-22 13:23:46

请看一下this MSDN网站。

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
typedef struct {
  LARGE_INTEGER StartingVcn;
} STARTING_VCN_INPUT_BUFFER, *PSTARTING_VCN_INPUT_BUFFER;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/42952374

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文