Is it possible to re-detect serial port without unplugging it

This will be a really ugly method of doing it, but this may do what you wish.

Private Function ResetSerialPort() As IO.Ports.SerialPort
        For Each sPort As String In IO.Ports.SerialPort.GetPortNames()
            Dim spMyPort As New IO.Ports.SerialPort(sPort)

            If spMyPort.IsOpen Then spMyPort.Close()

            Return spMyPort

        Return Nothing
    Catch ex As Exception
        MsgBox(ex.Message, MsgBoxStyle.Critical, "Error!")
        Return Nothing
    End Try
End Function