2

我有一个使用TrueCrypt加密的 USB 大容量存储设备。当我将它连接到 Windows 时,它会要求格式化。正如预期的那样,使用 TrueCrypt 会显示其内容。

在此处输入图像描述

如何读取该设备的前 100 个字节?

我知道这些字节没有意义,因为它们是加密的,但我想读取它们以创建校验和。

4

2 回答 2

2

在我的头顶上做了这个。但应该工作。

 public static long getBytes(string letter)
    {
        ManagementObject disk = new ManagementObject(String.Format("win32_logicaldisk.deviceid=\"{0}:\"", letter));
        disk.Get(); 
        return long.Parse(disk["Size"].ToString());
    }

编辑:对其进行测试并将 int 更改为 long。有用。

于 2014-01-23T23:25:47.043 回答
1

到目前为止,您考虑了哪些解决方案?您的应用程序是否知道 USB 设备何时插入或拔出?

据我所知,.Net 中没有直接访问 USB 设备的原生支持。我不得不使用诸如 LibUsbDotNet ( http://sourceforge.net/projects/libusbdotnet/ ) 或 SharpUSBLib ( http://www.icharpcode.net/OpenSource/SharpUSBLib/ ) 之类的库。示例、文档等。我相信您将能够找到最适合您的。

在一种情况下,我能够使用 WMDC 连接到设备,一旦建立连接,我就使用 OpenNETCF RAPI 库来读取/写入设备。

这是我在编写需要与 USB 设备(条形码扫描仪)交互的应用程序时发现的另一个非常有用的资源。 http://www.developerfusion.com/article/84338/making-usb-c-friendly/

在 Stackoverflow 上对类似问题进行了很好的足智多谋的讨论:Working with USB devices in .NET

于 2014-01-23T23:46:03.263 回答