private void StartRemoveWatcher()
{
var scope = new ManagementScope("root\\CIMV2") { Options = { EnablePrivileges = true } };
var query = new WqlEventQuery
{
EventClassName = "__InstanceDeletionEvent",
WithinInterval = TimeSpan.FromSeconds(3),
Condition = "TargetInstance ISA 'Win32_USBControllerdevice'"
};
this.removeWatcher = new ManagementEventWatcher(scope, query);
this.removeWatcher.EventArrived += (sender, e) => this.DriveRemoved.RaiseSafe(this, EventArgs.Empty);
this.removeWatcher.Start();
}