关于"\\\\.\\C:"的问题

失散糖 2011-03-07 10:01:26
看CreateFile的资料的时候发现了"\\\\.\\C:"这种路径,于是试了下,发现了各种奇怪的问题,为什么用SetFilePointer移动文件指针的位置的时候,只能是每扇区字节数(512)的整数倍,还有用ReadFile读取也只能是他的整数倍,而且貌似不能超过0x03FF7E00(这个数是一点点试出来的)啊?

(附注:不要轻易用WriteFile写这个文件,我试过,然后文件系统出问题了...费了好大功夫才恢复...)
...全文
254 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
失散糖 2011-03-08
  • 打赏
  • 举报
回复
好像明白了..结贴吧..
AnYidan 2011-03-08
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 bokutake 的回复:]
当然了,这是比较低级的直接打开分区,类似DOS下用中断INT 13H直接读写分区。这个操作是在文件系统之上的,所以无法以文件方式读写,只能以扇区方式读写(因为硬件实现原因,硬盘肯定只能按扇区读写,这个限制直接在硬盘驱动程序里继承了)。至于你发现无法读的地方,可能是比较重要的MFT之类的被系统文件系统驱动锁定的区域。
[/Quote]

同意
dianyancao 2011-03-07
  • 打赏
  • 举报
回复
md nul\
md com1\
md aux\
md com2\
md 111...\

rd \\.\nul\
rd \\.\com1\
rd \\.\com2\
rd \\.\aux\
rd 111...\

UNC path
辰岡墨竹 2011-03-07
  • 打赏
  • 举报
回复
当然了,这是比较低级的直接打开分区,类似DOS下用中断INT 13H直接读写分区。这个操作是在文件系统之上的,所以无法以文件方式读写,只能以扇区方式读写(因为硬件实现原因,硬盘肯定只能按扇区读写,这个限制直接在硬盘驱动程序里继承了)。至于你发现无法读的地方,可能是比较重要的MFT之类的被系统文件系统驱动锁定的区域。

69,382

社区成员

发帖
与我相关
我的任务
社区描述
C语言相关问题讨论
社区管理员
  • C语言
  • 花神庙码农
  • 架构师李肯
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧