在没有WMI的情况下,有哪些方法可以获得硬盘序列号?
我可以使用 ManagementObjectSearcher("SELECT * FROM Win32_PhysicalMedia") 获取 HDD 序列号,并且对于结果集中的每个 ManagementObject,我可以读取序列号. 我对另一种获取 IDE 和 SATA HDD 信息(无 WMI)的方法感兴趣,因为我目前的方法得到的结果好坏参半. 编辑 - 似乎唯一的选择是使用 DeviceIoControl.谁能指出我调用 DeviceIoControl 的 C# 代码的完整示例?我没有使用 P/Invoke 的经验. 环境:C# 2.0、Windows 2000 或更新版本. 解决方案 http://www.winsim.com/diskid32/
1136 2022-07-19
编程技术问答社区
如何获得硬盘传输模式?
我需要硬盘传输模式(DMA或PIO),并打印出来,你可以在设备管理器中找到它(在截图中红圈)的 所以我需要从PROGRAMM红圈的信息。我试图使用WMI类,但Win32_DiskDrive,Win32_IDEController和其他dont't提供我所需要的信息。最近,从设备管理器的属性窗口是Win32_IDEController,现场Win32_IDEController [“名称”]返回字符串 ATA通道1 。 另外,我发现这个的 https://msdn.microsoft.com/en-us/library/windows/hardware/ff550142(v = vs.85)的.aspx ,但它使用 irb.h ,即DDK(WDK)的一部分,我以前从来没有使用过,所以我甚至不知道如何使用此功能。 现在我正在学习WDK)在任何语言将很好的任何解决方案,项目我使用C#,但如果解决方案将是另一种语言,我可以在此解决方案写“DMA”或“PIO”到一个文件,执行它从
432 2022-07-19
编程技术问答社区
如何避免硬盘碎片化?
我正在编写一个应用程序,它将进行数百万次计算并将结果存储在光盘中的许多文件中.可能我可以拥有数千个不同大小的文件,并存储它们直到被分析.在此之后,我将只保留其中的几个,删除其他的并重新开始该过程.为了我的应用程序,这很好用,但现在我开始担心我会疯狂地分割我的光盘(我的光盘使用 NTFS).定期对磁盘驱动器进行碎片整理不在我的控制范围内,因为我不是机器的管理员. 有什么办法可以避免磁盘碎片? 解决方案 小文件的碎片通常不是问题.如果文件被读取一次并不重要 - 如果一个大文件分为许多部分并且磁盘必须进行大量搜索才能获得所有文件,这只是一个真正的时间问题. 显而易见的解决方案是不要编写大量小日志文件,或者将它们组合成一个大文件 - 或者使用数据库,这就是它们的用途.
218 2022-07-19
编程技术问答社区