Win32 API P-Invoke для перевода диска в оперативный, автономный режим и установки уникального идентификатора - PullRequest
2 голосов
/ 25 мая 2010

В настоящее время я использую Diskpart для выполнения этих функций, но я хотел бы иметь возможность использовать P-Invoke, и мне не нужно выкладываться на внешний процесс в моем приложении C #.

Примеры сценариев 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 с помощью Pinvoke?

Ответы [ 2 ]

0 голосов
/ 25 мая 2010

А как насчет DeviceIOControl API?

Если нет, я бы посмотрел на использование WMI. В частности, обратите внимание на классы WMI WIN32_DiskDrive или WIN32_LogicalDisk .

0 голосов
/ 25 мая 2010

Я не уверен точно, что делает Dispart, но я бы посоветовал взглянуть на WMI, которая может иметь такую ​​функциональность. Обычно это хорошее место для поиска, когда вам нужно сделать что-то менее распространенное в Windows.

Есть Storage WMI Classes, в котором может быть что-то полезное:
http://msdn.microsoft.com/en-us/library/ff567016%28VS.85%29.aspx

Редактировать: удалил предложения о томах, так как я пропустил, что вы не заинтересованы в этом.

...