Windows中的直接磁盘访问(C#)
我希望能够直接从磁盘读取和写入数据(即在扇区/集群级别),但我还没有找到适合在Windows下执行此操作的工具。
我一直试图弄清楚如何在C#中编写自己的文档,但我发现的文档很稀疏,只处理C ++ API。
什么是直接在C#中读取/写入驱动器的最佳方式? (或者任何人都可以向我推荐一种允许我直接从驱动器读/写的工具吗?)
pinvoke.net有一组基本上所有Win32 API的托管代码包装器,包括可以与磁盘管理器服务通信并执行低级内核/ IO的那些。
老实说,如果你想用C#编写这段代码,你可能需要查看Platform Invoke 。 它允许您与非托管平台API进行交互,您提到的是迄今为止您发现的大部分信息:-)
这个问题出现在搜索与.NET中块设备写入相关的术语上,因此我想用一些直接链接来修饰原始答案。
首先,您将使用PInvoke来创建FileFile来获取文件句柄。
PInvoke方法用于将CreateFile导入.NET环境。 MSDN在讨论SafeFileHandle时有一个例子。 如果要为CreateFile的参数和返回代码创建c#类型,PInvoke上有一些示例
但是,您需要决定是要写入物理设备还是写入卷。 卷对应于设备上的分区。 例如“。 PhysicalDrive0”是物理设备,而“。 C:”是音量。
有关可用Win32设备的详细信息,请在这些Win32设备上使用C#版本的QueryDosDevice Background,它们的命名转换以及与O / S对象的关系可以在Mark Russinovich的“Windows Internals”中找到。
上述就是C#学习教程:Windows中的直接磁盘访问(C#)分享的全部内容,如果对大家有所用处且需要了解更多关于C#学习教程,希望大家多多关注—计算机技术网(www.ctvol.com)!
本文来自网络收集,不代表计算机技术网立场,如涉及侵权请联系管理员删除。
ctvol管理联系方式QQ:251552304
本文章地址:https://www.ctvol.com/cdevelopment/1019323.html