/// <summary> /// /// </summary> /// <param name="session"></param> /// <param name="vm"></param> /// <param name="vbd"></param> /// <param name="userdevice"></param> /// <param name="plug"></param> /// <returns>True if it warned the user, so you don't warn twice</returns> private static void SetUserDevice(Session session, VM vm, VBD vbd, String userdevice, bool plug) { //Program.AssertOffEventThread(); if (vm.power_state == vm_power_state.Running && vbd.currently_attached && vbd.allowed_operations.Contains(vbd_operations.unplug)) { VBD.unplug(session, vbd.opaque_ref); } VBD.set_userdevice(session, vbd.opaque_ref, userdevice); if (plug && vbd.allowed_operations.Contains(vbd_operations.plug) && vm.power_state == vm_power_state.Running) { VBD.plug(session, vbd.opaque_ref); } }