To list the drives you can use
DriveInfo.GetDrives Method[
^]. For each drive you need to check whether it's local or not. For this the DriveInfo has
DriveType[
^].
When looping through the drives you can create a new filesystemwatcher and to store the created instances globally, you could for example use a static class with a list poperty. Something like
public static WatchInfo {
public static List<fileSystemWatcher> Watchers = new List<fileSystemWatcher>();
}
Now when creating the instances, just add them to the list and you can refer them from your program later.
Of course you would need also to set proper event handlers for changes in the drives.