Detect Insertion and Removal of USB Drive C#

I have located the following code and have been trying to change this so that I know if the USB device has been inserted or removed.

using System;

using System.Collections.Generic;

using System.Text;

using System.Management;

 

namespace WMIUSBConsolApplication

{

    class Program

    {

        static void Main(string[] args)

        {

            AddInsetUSBHandler();

            AddRemoveUSBHandler();

            for (; ; ) ;

        }

        static ManagementEventWatcher w = null;

        public static void AddRemoveUSBHandler()

        {

            WqlEventQuery q;

            ManagementScope scope = new ManagementScope("root\\CIMV2");

            scope.Options.EnablePrivileges = true;

            try

            {

                q = new WqlEventQuery();

                q.EventClassName = "__InstanceDeletionEvent";

                q.WithinInterval = new TimeSpan(0, 0, 3);

                q.Condition = @"TargetInstance ISA 'Win32_USBHub'";

                w = new ManagementEventWatcher(scope, q);

                w.EventArrived += new EventArrivedEventHandler(USBRemoved);

                w.Start();

            }

 

            catch (Exception e)

            {

 

                Console.WriteLine(e.Message);

                if (w != null)

                 w.Stop();

            }

        }

 

        static void AddInsetUSBHandler()

        {

            WqlEventQuery q;

            ManagementScope scope = new ManagementScope("root\\CIMV2");

            scope.Options.EnablePrivileges = true;

 

            try

            {

                q = new WqlEventQuery();

                q.EventClassName = "__InstanceCreationEvent";

                q.WithinInterval = new TimeSpan(0, 0, 3);

                q.Condition = @"TargetInstance ISA 'Win32_USBHub'";

                w = new ManagementEventWatcher(scope, q);

                w.EventArrived += new EventArrivedEventHandler(USBAdded);

                w.Start();

            }

            catch (Exception e)

            {

 

                Console.WriteLine(e.Message);

                if (w != null)

                    w.Stop();

            }

        }

 

        public static void USBAdded(object sender, EventArgs e)

        {

            Console.WriteLine("A USB device inserted");

        }

 

        public static void USBRemoved(object sender, EventArgs e)

        {

            Console.WriteLine("A USB device removed"); 

        }

    } 

}