Можете ли вы использовать p / invoke с функцией SHChangeNotifyRegister :
[DllImport("shell32.dll", SetLastError=true, EntryPoint="#2", CharSet=CharSet.Auto)]
static extern UInt32 SHChangeNotifyRegister(
IntPtr hWnd,
SHCNF fSources,
SHCNE fEvents,
uint wMsg,
int cEntries,
ref SHChangeNotifyEntry pFsne);
Вы можете прослушивать событие SHCNE_MEDIAINSERTED, но при этом определить, какой это тип среды, яЯ не совсем уверен, но, вероятно, есть другая внешняя функция, которую вы можете вызвать, чтобы получить эту информацию.