Инициализация/разметка/формат диска Windows C/C++

Я пытаюсь создать приложение для Windows XP 64bit, которое может обнаруживать диски определенной модели в системе, и если они не инициализированы и не отформатированы, выполнять эти процессы.

Я также хотел бы иметь возможность запрашивать и устанавливать информацию о разделе (включая метку тома).

Я начал собирать код с помощью DeviceIoControl, но я не смог понять, как устанавливать/получать метки разделов/томов или форматировать диски с помощью этого метода, у меня работает SMART-доступ.

Есть ли другой метод, который проще в использовании?

Зак


person Zac Shenker    schedule 07.10.2010    source источник
comment
возможный дубликат: stackoverflow.com/questions/2648305/format-drive-by-c   -  person AndersK    schedule 07.10.2010
comment
Ничто из этого не полностью охватывает то, чего я хочу достичь. WMI позволяет только запрашивать информацию, а не создавать разделы и другие вещи, которые я хочу делать. Я стараюсь не идти по пути обертывания приложений командной строки. Я бы предпочел, чтобы все было на C/C++. Я думаю, если мне придется идти по этому маршруту, diskpart может быть вариантом.   -  person Zac Shenker    schedule 07.10.2010


Ответы (2)


Похоже, вы ищете контрольные коды управления дисками.

person Luke    schedule 07.10.2010
comment
В итоге я использовал комбинацию WMI и DeviceIoControl с кодами управления управлением дисками. Похоже, что он может делать все, что я хочу, за исключением того, что в настоящее время у меня есть некоторые проблемы с использованием метода Win32_Volume Format в C++, я постоянно получаю ошибку WBEM_E_INVALID_METHOD_PARAMETERS. - person Zac Shenker; 12.10.2010
comment
Привет, @ZacShenker, вы можете отформатировать только что созданный раздел, созданный с помощью IOCTL_DISK_SET_DRIVE_LAYOUT? Я не мог понять, как отформатировать новый раздел. - person swdev; 25.04.2014

Если бы я делал это, я бы использовал свой собственный код только для обнаружения вещей. Вместо этого я бы сделал разбиение и форматирование с помощью команд diskpart и/или format. diskpart принимает аргумент файла со скриптом для выполнения.

person wilx    schedule 07.10.2010