首页
社区
课程
招聘
[求助]CreateFileMapping在远程文件映射盘中错误
发表于: 2013-1-30 16:08 4784

[求助]CreateFileMapping在远程文件映射盘中错误

2013-1-30 16:08
4784
问题是这样的,我用微软自带的远程桌面连接到一台电脑上(在本地资源里面选择本地的一个磁盘作为被远程电脑的映射盘),然后在被远程的电脑(win7)上使用Filemapping修改这个映射盘上面的内容。代码如下:

	LPCWSTR lpFilePath = L"\\\\tsclient\\D\\11.txt";
	HANDLE hFile = CreateFileW(lpFilePath,
		GENERIC_READ|GENERIC_WRITE,FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);

	LARGE_INTEGER largeSize;
	GetFileSizeEx(hFile,&largeSize);
	HANDLE hMap = CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,largeSize.LowPart +
100 ,NULL);

	CloseHandle(hFile);
	CloseHandle(hMap);



这样的操作会导致CreateFileMapping返回1224(ERROR_USER_MAPPED_FILE),但是如果
CreateFileMapping(hFile,NULL,PAGE_READWRITE,0,largeSize.LowPart ,NULL);

就是没有错误的,区别就是没有在filemapping里面增加空间(没有+100);

但是,如果操作的文件不是映射盘上的文件,是可以使用+100的,在映射盘上使用-100也是没有错误的。。

这是为什么呢,我想在映射盘是上修改文件,需要增加一点空间。。

各位大牛,求助

[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
免费 0
支持
分享
最新回复 (5)
雪    币: 8835
活跃值: (2404)
能力值: ( LV12,RANK:760 )
在线值:
发帖
回帖
粉丝
2
\\\\tsclient\\D\\11.txt
这是何等神奇的路径
权限有木有啊·~~~
2013-1-30 16:20
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
就是远程上去映射盘的路径啊。。D表示本地的D盘被映射上去了。。

权限,应该是有的吧,像记事本就能直接往后面添加字数,,但是我自己写程序就不行
2013-1-30 16:29
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
4

上传的附件:
2013-1-30 16:48
0
雪    币: 12
活跃值: (767)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
5
问题解决,在创建map之前,来个SetFilePointerEx,SetEndOfFile就可以了
2013-1-31 15:19
0
雪    币: 14
活跃值: (25)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
6
为什么不用NtExtendSection呢?
2013-1-31 21:41
0
游客
登录 | 注册 方可回帖
返回
//