diff --git a/configure b/configure
index 667af6b2..a385d034 100755
--- a/configure
+++ b/configure
@@ -1,6 +1,6 @@
 #! /bin/sh
 # Guess values for system-dependent variables and create Makefiles.
-# Generated by GNU Autoconf 2.71 for rufus 4.6.
+# Generated by GNU Autoconf 2.71 for rufus 4.7.
 #
 # Report bugs to <https://github.com/pbatard/rufus/issues>.
 #
@@ -611,8 +611,8 @@ MAKEFLAGS=
 # Identity of this package.
 PACKAGE_NAME='rufus'
 PACKAGE_TARNAME='rufus'
-PACKAGE_VERSION='4.6'
-PACKAGE_STRING='rufus 4.6'
+PACKAGE_VERSION='4.7'
+PACKAGE_STRING='rufus 4.7'
 PACKAGE_BUGREPORT='https://github.com/pbatard/rufus/issues'
 PACKAGE_URL='https://rufus.ie'
 
@@ -1269,7 +1269,7 @@ if test "$ac_init_help" = "long"; then
   # Omit some internal or obsolete options to make the list less imposing.
   # This message is too long to be a string in the A/UX 3.1 sh.
   cat <<_ACEOF
-\`configure' configures rufus 4.6 to adapt to many kinds of systems.
+\`configure' configures rufus 4.7 to adapt to many kinds of systems.
 
 Usage: $0 [OPTION]... [VAR=VALUE]...
 
@@ -1336,7 +1336,7 @@ fi
 
 if test -n "$ac_init_help"; then
   case $ac_init_help in
-     short | recursive ) echo "Configuration of rufus 4.6:";;
+     short | recursive ) echo "Configuration of rufus 4.7:";;
    esac
   cat <<\_ACEOF
 
@@ -1428,7 +1428,7 @@ fi
 test -n "$ac_init_help" && exit $ac_status
 if $ac_init_version; then
   cat <<\_ACEOF
-rufus configure 4.6
+rufus configure 4.7
 generated by GNU Autoconf 2.71
 
 Copyright (C) 2021 Free Software Foundation, Inc.
@@ -1504,7 +1504,7 @@ cat >config.log <<_ACEOF
 This file contains any messages produced by compilers while
 running configure, to aid debugging if configure makes a mistake.
 
-It was created by rufus $as_me 4.6, which was
+It was created by rufus $as_me 4.7, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   $ $0$ac_configure_args_raw
@@ -2767,7 +2767,7 @@ fi
 
 # Define the identity of the package.
  PACKAGE='rufus'
- VERSION='4.6'
+ VERSION='4.7'
 
 
 printf "%s\n" "#define PACKAGE \"$PACKAGE\"" >>confdefs.h
@@ -5309,7 +5309,7 @@ cat >>$CONFIG_STATUS <<\_ACEOF || ac_write_fail=1
 # report actual input values of CONFIG_FILES etc. instead of their
 # values after options handling.
 ac_log="
-This file was extended by rufus $as_me 4.6, which was
+This file was extended by rufus $as_me 4.7, which was
 generated by GNU Autoconf 2.71.  Invocation command line was
 
   CONFIG_FILES    = $CONFIG_FILES
@@ -5365,7 +5365,7 @@ ac_cs_config_escaped=`printf "%s\n" "$ac_cs_config" | sed "s/^ //; s/'/'\\\\\\\\
 cat >>$CONFIG_STATUS <<_ACEOF || ac_write_fail=1
 ac_cs_config='$ac_cs_config_escaped'
 ac_cs_version="\\
-rufus config.status 4.6
+rufus config.status 4.7
 configured by $0, generated by GNU Autoconf 2.71,
   with options \\"\$ac_cs_config\\"
 
diff --git a/configure.ac b/configure.ac
index 513ab26d..c530cd10 100644
--- a/configure.ac
+++ b/configure.ac
@@ -1,4 +1,4 @@
-AC_INIT([rufus], [4.6], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.ie])
+AC_INIT([rufus], [4.7], [https://github.com/pbatard/rufus/issues], [rufus], [https://rufus.ie])
 AM_INIT_AUTOMAKE([-Wno-portability foreign no-dist no-dependencies])
 AC_CONFIG_SRCDIR([src/rufus.c])
 AC_CONFIG_MACRO_DIR([m4])
diff --git a/src/dev.c b/src/dev.c
index 5ea2b2a0..a5768a8f 100644
--- a/src/dev.c
+++ b/src/dev.c
@@ -943,6 +943,9 @@ BOOL GetDevices(DWORD devnum)
 					uprintf("Device eliminated because it was detected as a Microsoft Dev Drive");
 					safe_free(devint_detail_data);
 					break;
+				} else if (IsFilteredDrive(drive_index)) {
+					safe_free(devint_detail_data);
+					break;
 				}
 				// Windows 10 19H1 mounts a 'PortableBaseLayer' for its Windows Sandbox feature => unlist those
 				if (safe_strcmp(label, windows_sandbox_vhd_label) == 0) {
diff --git a/src/drive.c b/src/drive.c
index 5f378e24..6be48e3a 100644
--- a/src/drive.c
+++ b/src/drive.c
@@ -2647,3 +2647,45 @@ out:
 	safe_closehandle(hPhysical);
 	return ret;
 }
+
+/*
+ * Detect filtered drives, that have been added by users through the registry
+ * entries IgnoreDisk01 - IgnoreDisk08. These entries must contain *decorated*
+ * string GUIDs that match the GPT Disk GUID of the drive to filter out, as
+ * reported by Rufus, such as "{F333EC2E-25C9-488D-A7FC-9147C2367623}".
+ */
+BOOL IsFilteredDrive(DWORD DriveIndex)
+{
+	char setting_name[32];
+	DWORD i, size = 0;
+	BOOL r, ret = FALSE;
+	HANDLE hPhysical = INVALID_HANDLE_VALUE;
+	BYTE layout[4096] = { 0 };
+	PDRIVE_LAYOUT_INFORMATION_EX DriveLayout = (PDRIVE_LAYOUT_INFORMATION_EX)(void*)layout;
+	GUID* DiskGuid;
+
+	hPhysical = GetPhysicalHandle(DriveIndex, FALSE, FALSE, TRUE);
+	if (hPhysical == INVALID_HANDLE_VALUE)
+		goto out;
+
+	r = DeviceIoControl(hPhysical, IOCTL_DISK_GET_DRIVE_LAYOUT_EX, NULL, 0, layout, sizeof(layout), &size, NULL);
+	if (!r || size <= 0)
+		goto out;
+
+	// Only works for GPT drives
+	if (DriveLayout->PartitionStyle != PARTITION_STYLE_GPT)
+		goto out;
+	for (i = 1; i <= MAX_IGNORE_USB; i++) {
+		static_sprintf(setting_name, "IgnoreDisk%02d", i);
+		DiskGuid = StringToGuid(ReadSettingStr(setting_name));
+		if (CompareGUID(&DriveLayout->Gpt.DiskId, DiskGuid)) {
+			uprintf("Device eliminated because it matches Disk GUID %s", GuidToString(DiskGuid, TRUE));
+			ret = TRUE;
+			goto out;
+		}
+	}
+
+out:
+	safe_closehandle(hPhysical);
+	return ret;
+}
diff --git a/src/drive.h b/src/drive.h
index 01e9c6b8..bee39f39 100644
--- a/src/drive.h
+++ b/src/drive.h
@@ -425,3 +425,4 @@ BOOL GetOpticalMedia(IMG_SAVE* img_save);
 uint64_t GetEspOffset(DWORD DriveIndex);
 BOOL ToggleEsp(DWORD DriveIndex, uint64_t PartitionOffset);
 BOOL IsMsDevDrive(DWORD DriveIndex);
+BOOL IsFilteredDrive(DWORD DriveIndex);
diff --git a/src/rufus.rc b/src/rufus.rc
index 63419a76..6e5aacdf 100644
--- a/src/rufus.rc
+++ b/src/rufus.rc
@@ -33,7 +33,7 @@ LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
 IDD_DIALOG DIALOGEX 12, 12, 232, 326
 STYLE DS_SETFONT | DS_MODALFRAME | DS_CENTER | WS_MINIMIZEBOX | WS_POPUP | WS_CAPTION | WS_SYSMENU
 EXSTYLE WS_EX_ACCEPTFILES
-CAPTION "Rufus 4.6.2208"
+CAPTION "Rufus 4.7.2209"
 FONT 9, "Segoe UI Symbol", 400, 0, 0x0
 BEGIN
     LTEXT           "Drive Properties",IDS_DRIVE_PROPERTIES_TXT,8,6,53,12,NOT WS_GROUP
@@ -399,8 +399,8 @@ END
 //
 
 VS_VERSION_INFO VERSIONINFO
- FILEVERSION 4,6,2208,0
- PRODUCTVERSION 4,6,2208,0
+ FILEVERSION 4,7,2209,0
+ PRODUCTVERSION 4,7,2209,0
  FILEFLAGSMASK 0x3fL
 #ifdef _DEBUG
  FILEFLAGS 0x1L
@@ -418,13 +418,13 @@ BEGIN
             VALUE "Comments", "https://rufus.ie"
             VALUE "CompanyName", "Akeo Consulting"
             VALUE "FileDescription", "Rufus"
-            VALUE "FileVersion", "4.6.2208"
+            VALUE "FileVersion", "4.7.2209"
             VALUE "InternalName", "Rufus"
             VALUE "LegalCopyright", "� 2011-2024 Pete Batard (GPL v3)"
             VALUE "LegalTrademarks", "https://www.gnu.org/licenses/gpl-3.0.html"
-            VALUE "OriginalFilename", "rufus-4.6.exe"
+            VALUE "OriginalFilename", "rufus-4.7.exe"
             VALUE "ProductName", "Rufus"
-            VALUE "ProductVersion", "4.6.2208"
+            VALUE "ProductVersion", "4.7.2209"
         END
     END
     BLOCK "VarFileInfo"