diff --git a/configure b/configure
index e4ec021b7d4ac8c40543c4f4f678a44670f6de3d..8b078c21e2276c5d331c8ffe8e34ea8228d3fef0 100755
--- a/configure
+++ b/configure
@@ -2302,26 +2302,6 @@ EOF
   fi
 fi
 
-##########################################
-# check if mingw environment provides a recent ntddscsi.h
-guest_agent_ntddscsi="no"
-if test "$mingw32" = "yes"; then
-  cat > $TMPC << EOF
-#include <windows.h>
-#include <ntddscsi.h>
-int main(void) {
-#if !defined(IOCTL_SCSI_GET_ADDRESS)
-#error Missing required ioctl definitions
-#endif
-  SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 };
-  return addr.Lun;
-}
-EOF
-  if compile_prog "" "" ; then
-    guest_agent_ntddscsi=yes
-  fi
-fi
-
 ##########################################
 # capstone
 
@@ -2831,9 +2811,6 @@ if test "$debug_tcg" = "yes" ; then
 fi
 if test "$mingw32" = "yes" ; then
   echo "CONFIG_WIN32=y" >> $config_host_mak
-  if test "$guest_agent_ntddscsi" = "yes" ; then
-    echo "CONFIG_QGA_NTDDSCSI=y" >> $config_host_mak
-  fi
   echo "QEMU_GA_MSI_MINGW_DLL_PATH=${QEMU_GA_MSI_MINGW_DLL_PATH}" >> $config_host_mak
   echo "QEMU_GA_MANUFACTURER=${QEMU_GA_MANUFACTURER}" >> $config_host_mak
   echo "QEMU_GA_DISTRO=${QEMU_GA_DISTRO}" >> $config_host_mak
diff --git a/meson.build b/meson.build
index 8d9898c5c3a6d3ef33236b2e88de925348cc6a20..aefe8681b9fc8fdd8ea3a3d3ffae724a4f77511e 100644
--- a/meson.build
+++ b/meson.build
@@ -1938,6 +1938,22 @@ if targetos == 'windows' and link_language == 'cpp'
     int main(void) { return VSS_CTX_BACKUP; }''')
 endif
 
+have_ntddscsi = false
+if targetos == 'windows'
+  have_ntddscsi = cc.compiles('''
+    #include <windows.h>
+    #include <ntddscsi.h>
+    int main(void) {
+    #if !defined(IOCTL_SCSI_GET_ADDRESS)
+    #error Missing required ioctl definitions
+    #endif
+      SCSI_ADDRESS addr = { .Lun = 0, .TargetId = 0, .PathId = 0 };
+      return addr.Lun;
+    }
+''')
+endif
+config_host_data.set('HAVE_NTDDSCSI', have_ntddscsi)
+
 ignored = ['CONFIG_QEMU_INTERP_PREFIX', # actually per-target
     'HAVE_GDB_BIN']
 arrays = ['CONFIG_BDRV_RW_WHITELIST', 'CONFIG_BDRV_RO_WHITELIST']
@@ -3605,7 +3621,7 @@ summary_info += {'libnfs support':    libnfs}
 if targetos == 'windows'
   if have_ga
     summary_info += {'QGA VSS support':   have_qga_vss}
-    summary_info += {'QGA w32 disk info': config_host.has_key('CONFIG_QGA_NTDDSCSI')}
+    summary_info += {'QGA w32 disk info': have_ntddscsi}
   endif
 endif
 summary_info += {'seccomp support':   seccomp}
diff --git a/qga/commands-win32.c b/qga/commands-win32.c
index 484cb1c6bd594379b2b9e4026608b0485744d76d..4fbbad793f2e543905257aa078abed915b223e8b 100644
--- a/qga/commands-win32.c
+++ b/qga/commands-win32.c
@@ -18,7 +18,7 @@
 #include <ws2tcpip.h>
 #include <iptypes.h>
 #include <iphlpapi.h>
-#ifdef CONFIG_QGA_NTDDSCSI
+#ifdef HAVE_NTDDSCSI
 #include <winioctl.h>
 #include <ntddscsi.h>
 #endif
@@ -474,7 +474,7 @@ void qmp_guest_file_flush(int64_t handle, Error **errp)
     }
 }
 
-#ifdef CONFIG_QGA_NTDDSCSI
+#ifdef HAVE_NTDDSCSI
 
 static GuestDiskBusType win2qemu[] = {
     [BusTypeUnknown] = GUEST_DISK_BUS_TYPE_UNKNOWN,
@@ -1111,7 +1111,7 @@ GuestDiskInfoList *qmp_guest_get_disks(Error **errp)
     return NULL;
 }
 
-#endif /* CONFIG_QGA_NTDDSCSI */
+#endif /* HAVE_NTDDSCSI */
 
 static GuestFilesystemInfo *build_guest_fsinfo(char *guid, Error **errp)
 {
diff --git a/qga/meson.build b/qga/meson.build
index d22ecb41872c604e1b6e326f19f39040b43d12cc..54f2da5b07635be4fc6690d851e6267375a74b2a 100644
--- a/qga/meson.build
+++ b/qga/meson.build
@@ -88,7 +88,7 @@ if targetos == 'windows'
     qga_libs += ['-lole32', '-loleaut32', '-lshlwapi', '-lstdc++', '-Wl,--enable-stdcall-fixup']
     subdir('vss-win32')
   endif
-  if 'CONFIG_QGA_NTDDSCSI' in config_host
+  if have_ntddscsi
     qga_libs += ['-lsetupapi', '-lcfgmgr32']
   endif
 endif