Index: /trunk/src/VBox/Devices/Audio/DrvAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 61567)
+++ /trunk/src/VBox/Devices/Audio/DrvAudio.cpp	(revision 61568)
@@ -957,10 +957,22 @@
 #endif
 
-static int drvAudioHostInit(PCFGMNODE pCfgHandle, PDRVAUDIO pThis)
+/**
+ * Initializes the host backend and queries its initial configuration.
+ * If the host backend fails, VERR_AUDIO_BACKEND_INIT_FAILED will be returned.
+ *
+ * Note: As this routine is called when attaching to the device LUN in the
+ *       device emulation, we either check for success or VERR_AUDIO_BACKEND_INIT_FAILED.
+ *       Everything else is considered as fatal and must be handled separately in
+ *       the device emulation!
+ *
+ * @return  IPRT status code.
+ * @param   pThis               Driver instance to be called.
+ * @param   pCfgHandle          CFGM configuration handle to use for this driver.
+ */
+static int drvAudioHostInit(PDRVAUDIO pThis, PCFGMNODE pCfgHandle)
 {
     /* pCfgHandle is optional. */
+    NOREF(pCfgHandle);
     AssertPtrReturn(pThis, VERR_INVALID_POINTER);
-
-    NOREF(pCfgHandle);
 
     LogFlowFuncEnter();
@@ -970,6 +982,6 @@
     if (RT_FAILURE(rc))
     {
-        LogFlowFunc(("Initialization of lower driver failed with rc=%Rrc\n", rc));
-        return rc;
+        LogRel(("Audio: Initialization of host backend failed with %Rrc\n", rc));
+        return VERR_AUDIO_BACKEND_INIT_FAILED;
     }
 
@@ -978,6 +990,6 @@
     if (RT_FAILURE(rc))
     {
-        LogFlowFunc(("Getting backend configuration failed with rc=%Rrc\n", rc));
-        return rc;
+        LogRel(("Audio: Getting host backend configuration failed with %Rrc\n", rc));
+        return VERR_AUDIO_BACKEND_INIT_FAILED;
     }
 
@@ -1040,5 +1052,5 @@
      */
     if (RT_SUCCESS(rc))
-        rc = drvAudioHostInit(pCfgHandle, pThis);
+        rc = drvAudioHostInit(pThis, pCfgHandle);
 
     LogFlowFuncLeaveRC(rc);
