Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# Win32 API P-Invoke使磁盘联机、脱机并设置唯一ID_C#_Pinvoke_Disk_Hard Drive - Fatal编程技术网

C# Win32 API P-Invoke使磁盘联机、脱机并设置唯一ID

C# Win32 API P-Invoke使磁盘联机、脱机并设置唯一ID,c#,pinvoke,disk,hard-drive,C#,Pinvoke,Disk,Hard Drive,我目前正在使用Diskpart来完成这些功能,但我希望能够使用p-Invoke,而不必在我的C#app中向外部进程抛出 Diskpart脚本示例如下: //Online a disk Select disk 7 disk online // Reset GPT Identifier select disk 7 UNIQUEID DISK ID=baf784e7-6bbd-4cfb-aaac-e86c96e166ee 我尝试搜索pinvoke.net,但只能找到处理卷的函数,而不能找到磁盘。关

我目前正在使用Diskpart来完成这些功能,但我希望能够使用p-Invoke,而不必在我的C#app中向外部进程抛出

Diskpart脚本示例如下:

//Online a disk
Select disk 7
disk online

// Reset GPT Identifier
select disk 7
UNIQUEID DISK ID=baf784e7-6bbd-4cfb-aaac-e86c96e166ee

我尝试搜索pinvoke.net,但只能找到处理卷的函数,而不能找到磁盘。关于如何使用Pinvoke完成这些diskpart命令,有什么想法吗?

我不确定Dispart到底做了什么,但我建议查看可能具有这种功能的WMI。当你需要在Windows中做一些不太常见的事情时,它通常是一个好地方

有一些
存储WMI类
,它们可能有一些有用的东西:

编辑:删除了有关卷的建议,因为我错过了您对此不感兴趣的内容。

API如何


如果没有,我会考虑使用WMI。特别是,看看WMI或类。

我确实找到了win32\U diskdrive,但它没有任何有用的方法来完成我要完成的任务。看起来我需要从CreateFile和DeviceControl开始。任何例子都很好。我不是Win32程序员:)我可以写一些东西,但这需要一些时间。您可以在上查看使用API的示例。这篇文章也可能有用:你有没有找到解决这个问题的方法?