首页
社区
课程
招聘
关于SetFilePointerEx参数的问题~
2006-5-30 14:51 6236

关于SetFilePointerEx参数的问题~

2006-5-30 14:51
6236
用invoke调用SetFilePointerEx函数

提示错误说参数不够???

我晕

我查了一下MSDN,SetFilePointerEx只有4个函数

我在VC中调用没有问题

在masm中就报出这样的错误,于是又加了一个参数,但是不知道这个参数是干嘛的,设置为NULL编译通过,运行也成功~~

现在想要知道,SetFilePointerEx最后一个参数是干嘛的?

查不到有关资料啊

[培训]二进制漏洞攻防(第3期);满10人开班;模糊测试与工具使用二次开发;网络协议漏洞挖掘;Linux内核漏洞挖掘与利用;AOSP漏洞挖掘与利用;代码审计。

收藏
点赞0
打赏
分享
最新回复 (5)
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-5-30 15:26
2
0
VC没有错,MASM定义也没有错。最后一个参数是dwMoveMethod,只是你将liDistanceTOMove变量当成是Dword类型了。
The SetFilePointerEx function moves the file pointer of the specified file.

BOOL SetFilePointerEx(
  HANDLE hFile,
  LARGE_INTEGER liDistanceToMove, //这个变量是有符号的__int64的大整数变量,在32位的处理器上需要两个DWORD,DWORD
  PLARGE_INTEGER lpNewFilePointer,
  DWORD dwMoveMethod
);

typedef union _LARGE_INTEGER {
  struct {
    DWORD LowPart;
    LONG HighPart;  };
  struct {
    DWORD LowPart;
    LONG HighPart;
  } u;
  LONGLONG QuadPart;
} LARGE_INTEGER,  *PLARGE_INTEGER;
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lemony 1 2006-5-30 15:30
3
0
invoke SetFilePointerEx,esi,@FileSize,NULL,FILE_BEGIN

你觉得这样有问题吗?

但是编译不通过
雪    币: 235
活跃值: (100)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lemony 1 2006-5-30 15:33
4
0
哦,了解了~~

也就是说第一个值是句柄,第二个和大小的低位,第三个参数是大小的高位?
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-5-30 15:38
5
0
//看MSDN,应该是这样调用。
invoke SetFilePointerEx,esi,iSize,-1,addr @lpdqSize,FILE_BEGIN
雪    币: 2367
活跃值: (756)
能力值: (RANK:410 )
在线值:
发帖
回帖
粉丝
小虾 10 2006-5-30 16:44
6
0
最初由 lemony 发布
哦,了解了~~

也就是说第一个值是句柄,第二个和大小的低位,第三个参数是大小的高位?

是的。
游客
登录 | 注册 方可回帖
返回