【问题标题】:Is there a built in driver I can access to get raw disk access on windows?是否有我可以访问的内置驱动程序以在 Windows 上获取原始磁盘访问权限?
【发布时间】:2023-03-20 08:09:01
【问题描述】:

我正在使用 vb.net。有没有办法可以访问低级驱动程序或类似的东西以获得原始磁盘访问权限?

我的意思是这样的:

Dim data(255) As Byte
data = ReadSector("C:", 5)
data(125) = asc("h")
data(126) = asc("e")
data(127) = asc("l")
data(128) = asc("l")
data(129) = asc("o")
WriteSector("C:", 5, data)

其中 ReadSector 具有参数(驱动器为字符串,扇区为长),而 WriteSector 具有(驱动器为字符串,扇区为长,data() 为字节)。

这将在驱动器 C 的第 5 个扇区的第 126 个字符上写入“hello”。

【问题讨论】:

    标签: vb.net disk hard-drive


    【解决方案1】:

    您正在寻找DeviceIOCtrl() 函数,它允许您使用WinAP 进行低级磁盘访问。如果您使用 VB.NET 编写,它将非常难以使用。

    没有简单的ReadSectorWriteSector 函数,也不应该有。对硬盘的低级访问不适合初学者;如果您不知道自己在做什么,则很容易破坏整个操作系统安装和/或丢失数据。

    【讨论】:

    • 谢谢。我意识到与此相关的风险,我希望打破一两个驱动器。不过好在,我将在虚拟机上执行此操作。因此,如果我打破它,不会造成任何伤害。我在低级编程方面不是新手,但是我在使用高级语言访问低级驱动程序方面是新手。能够将驱动器视为具有读写流的单个文件也会使我受益,但我确信它不是那么简单。
    • 我已经为您提供了编写您自己的 ReadSectorWriteSector 函数所需的 WinAPI 名称,因为它们不存在。我链接的文档为您提供了有关还需要的其他 API 调用的信息,以及一些 C++ 示例代码。没有现有的 VB.net/C# 框架或 CLR 功能可以满足您的要求。当然,如果您不是低级编程的新手,那么编写这两个包装函数应该不是问题。 :-) (虽然我不确定 VB.NET 是否适合这样做。)祝你好运。 :-)
    猜你喜欢
    • 2013-07-15
    • 2017-05-11
    • 1970-01-01
    • 1970-01-01
    • 2011-06-20
    • 2022-12-16
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多