diff --git a/drivers/wdm/audio/hdaudbus/businterface.cpp b/drivers/wdm/audio/hdaudbus/businterface.cpp
index 287340290a2..3df5c4f7f6e 100644
--- a/drivers/wdm/audio/hdaudbus/businterface.cpp
+++ b/drivers/wdm/audio/hdaudbus/businterface.cpp
@@ -363,6 +363,7 @@ HDA_PDOHandleQueryInterface(
         InterfaceHDA->FreeDmaBufferWithNotification = HDA_FreeDmaBufferWithNotification;
         InterfaceHDA->RegisterNotificationEvent = HDA_RegisterNotificationEvent;
         InterfaceHDA->UnregisterNotificationEvent = HDA_UnregisterNotificationEvent;
+        return STATUS_SUCCESS;
     }
 
     // FIXME
diff --git a/drivers/wdm/audio/hdaudbus/driver.h b/drivers/wdm/audio/hdaudbus/driver.h
index 5a6b5177294..303a0430357 100644
--- a/drivers/wdm/audio/hdaudbus/driver.h
+++ b/drivers/wdm/audio/hdaudbus/driver.h
@@ -40,8 +40,8 @@
 #define HDA_MAX_AUDIO_GROUPS	15
 #define HDA_MAX_CODECS			15
 #define HDA_MAX_STREAMS			16
-#define MAX_CODEC_RESPONSES		16
-#define MAX_CODEC_UNSOL_RESPONSES 16
+#define MAX_CODEC_RESPONSES		256
+#define MAX_CODEC_UNSOL_RESPONSES 256
 #define MAX_INPUTS				32
 #define MAX_IO_WIDGETS			8
 #define MAX_ASSOCIATIONS		16
diff --git a/drivers/wdm/audio/hdaudbus/fdo.cpp b/drivers/wdm/audio/hdaudbus/fdo.cpp
index 7088ee933c3..6eacf0c2f98 100644
--- a/drivers/wdm/audio/hdaudbus/fdo.cpp
+++ b/drivers/wdm/audio/hdaudbus/fdo.cpp
@@ -120,7 +120,7 @@ HDA_DpcForIsr(
         if (Codec->ResponseCount >= MAX_CODEC_RESPONSES)
         {
             DPRINT1("too many responses for codec %x Response %x ResponseFlags %x\n", Cad, Response, ResponseFlags);
-            continue;
+            break;
         }
 
         // FIXME handle unsolicited responses
