Утилита для отключения usb-накопителей - C#
Формулировка задачи:
Мне нужно написать небольшое приложение, висящее в трее, позволяющее максимально быстро «завершить работу» usb-флэшки или предоставить информацию о том, какое приложение мешает ее отключить. Требуется поддержка работы из командной строки и платформы .net
Я лазил в интернете, но конкретно ничего не нашел про извлечение флешки в Виндолсе.
Помогите, если кто-то знает что-нибдь в этой области. Можно и в Линуксе, если тут что-нибудь знаете.
Заранее, спасибо!
Решение задачи: «Утилита для отключения usb-накопителей»
textual
Листинг программы
#include <windows.h>
void DisconectUsb(char Vol)
{
char *volname=new char[7];
volname[0]='\\';
volname[1]='\\';
volname[2]='.';
volname[3]='\\';
volname[4]=Vol;
volname[5]=':';
volname[6]='\0';
HANDLE hVol;
BOOL res;
hVol = CreateFile(volname, GENERIC_READ || GENERIC_WRITE, FILE_SHARE_READ || FILE_SHARE_WRITE, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, 0);
if(hVol == INVALID_HANDLE_VALUE) return;
DWORD nBytesReturned = 0;
res = DeviceIoControl(hVol, IOCTL_STORAGE_EJECT_MEDIA, NULL, 0, NULL, 0, &nBytesReturned, NULL);
delete [] volname;
}
int main()
{
for(int i=69; i<80; i++)
{
DisconectUsb(i);
}
return 0;
}