USB-диск отображается в виде буквы диска. Вы можете обнаружить, что это может быть устройство USB, использующее GetDriveType
API . Однако это говорит только о том, что он съемный, а не о том, что это USB-накопитель. Чтобы сказать это, вам, возможно, придется взглянуть на функцию SetupDiGetDeviceRegistryProperty (на которую ссылается ссылка GetDriveType
MSDN). Кроме того, можно подключить диски, которые не являются буквами дисков, или буквами дисков, которые не обозначают монтирование дисков, поэтому, чтобы найти все USB-накопители, вам нужно взглянуть на некоторые другие функции SetupDi ...
Поскольку это буква диска, обычным способом чтения и записи на USB-накопитель является использование функций файловой системы, таких как fopen
или Windows CreateFile
. Если вы хотите записать напрямую в него, как в память, вы можете создать файл, охватывающий все устройство, а затем отобразить файл в памяти. Тем не менее, я бы не рекомендовал этого делать, кроме как в специализированных приложениях, потому что, если есть ошибка ввода-вывода (в том числе, например, пользователь отключил диск), то ваша программа получит исключение SEH, и это вызывает много сложностей, лучше избегать.