Index: /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 73688)
+++ /trunk/src/VBox/Devices/Audio/DrvHostALSAAudio.cpp	(revision 73689)
@@ -326,5 +326,6 @@
 {
     snd_pcm_t *phPCM = NULL;
-    int rc;
+
+    int rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     unsigned int cChannels = pCfgReq->nchannels;
@@ -350,5 +351,4 @@
         {
             LogRel(("ALSA: Failed to open \"%s\" as %s device: %s\n", pszDev, fIn ? "input" : "output", snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -358,5 +358,4 @@
         {
             LogRel(("ALSA: Error setting output non-blocking mode: %s\n", snd_strerror(err)));
-            rc = VERR_ACCESS_DENIED; /** @todo Find a better rc. */
             break;
         }
@@ -368,5 +367,4 @@
         {
             LogRel(("ALSA: Failed to initialize hardware parameters: %s\n", snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -376,5 +374,4 @@
         {
             LogRel(("ALSA: Failed to set access type: %s\n", snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -384,5 +381,4 @@
         {
             LogRel(("ALSA: Failed to set audio format to %d: %s\n", pCfgReq->fmt, snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -392,5 +388,4 @@
         {
             LogRel(("ALSA: Failed to set frequency to %uHz: %s\n", pCfgReq->freq, snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -400,5 +395,4 @@
         {
             LogRel(("ALSA: Failed to set number of channels to %d\n", pCfgReq->nchannels));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -408,5 +402,4 @@
         {
             LogRel(("ALSA: Number of audio channels (%u) not supported\n", cChannels));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -422,5 +415,4 @@
         {
             LogRel(("ALSA: Could not determine minimal period size\n"));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -436,7 +428,5 @@
         if (err < 0)
         {
-            LogRel(("ALSA: Failed to set period size %d (%s)\n",
-                    period_size_f, snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
+            LogRel(("ALSA: Failed to set period size %d (%s)\n", period_size_f, snd_strerror(err)));
             break;
         }
@@ -447,5 +437,4 @@
         {
             LogRel(("ALSA: Could not retrieve minimal buffer size\n"));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -457,5 +446,4 @@
         {
             LogRel(("ALSA: Failed to set near buffer size %RU32: %s\n", buffer_size_f, snd_strerror(err)));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -465,5 +453,4 @@
         {
             LogRel(("ALSA: Failed to apply audio parameters\n"));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -473,5 +460,4 @@
         {
             LogRel(("ALSA: Failed to get buffer size\n"));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -482,5 +468,4 @@
         {
             LogRel(("ALSA: Failed to get period size\n"));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -506,4 +491,6 @@
         pCfgObt->period_size = obt_period_size;
         pCfgObt->buffer_size = obt_buffer_size;
+
+        rc = VINF_SUCCESS;
     }
     while (0);
Index: /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 73688)
+++ /trunk/src/VBox/Devices/Audio/DrvHostCoreAudio.cpp	(revision 73689)
@@ -2337,5 +2337,5 @@
     }
     else
-        rc = VERR_NOT_AVAILABLE;
+        rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     LogFunc(("Returning %Rrc\n", rc));
Index: /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 73688)
+++ /trunk/src/VBox/Devices/Audio/DrvHostDSound.cpp	(revision 73689)
@@ -1775,5 +1775,5 @@
     }
     else
-        rc = VERR_GENERAL_FAILURE; /** @todo Fudge! */
+        rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     LogFlowFuncLeaveRC(rc);
@@ -1949,5 +1949,5 @@
     }
     else
-        rc = VERR_GENERAL_FAILURE; /** @todo Fudge! */
+        rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     return rc;
Index: /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 73688)
+++ /trunk/src/VBox/Devices/Audio/DrvHostOSSAudio.cpp	(revision 73689)
@@ -225,5 +225,5 @@
 static int ossStreamOpen(const char *pszDev, int fOpen, POSSAUDIOSTREAMCFG pOSSReq, POSSAUDIOSTREAMCFG pOSSAcq, int *phFile)
 {
-    int rc = VINF_SUCCESS;
+    int rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     int hFile = -1;
@@ -234,5 +234,4 @@
         {
             LogRel(("OSS: Failed to open %s: %s (%d)\n", pszDev, strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -250,5 +249,5 @@
 
             default:
-                rc = VERR_NOT_SUPPORTED;
+                rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
                 break;
         }
@@ -260,5 +259,4 @@
         {
             LogRel(("OSS: Failed to set audio format to %ld: %s (%d)\n", iFormat, strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -269,5 +267,4 @@
             LogRel(("OSS: Failed to set number of audio channels (%RU8): %s (%d)\n",
                     pOSSReq->Props.cChannels, strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -277,5 +274,4 @@
         {
             LogRel(("OSS: Failed to set audio frequency (%dHZ): %s (%d)\n", pOSSReq->Props.uHz, strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -286,5 +282,4 @@
         {
             LogRel(("OSS: Failed to set non-blocking mode: %s (%d)\n", strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -302,5 +297,4 @@
             LogRel(("OSS: Failed to set %RU16 fragments to %RU32 bytes each: %s (%d)\n",
                     pOSSReq->cFragments, pOSSReq->cbFragmentSize, strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
@@ -310,5 +304,4 @@
         {
             LogRel(("OSS: Failed to retrieve %s buffer length: %s (%d)\n", fIn ? "input" : "output", strerror(errno), errno));
-            rc = RTErrConvertFromErrno(errno);
             break;
         }
Index: /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp
===================================================================
--- /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 73688)
+++ /trunk/src/VBox/Devices/Audio/DrvHostPulseAudio.cpp	(revision 73689)
@@ -480,5 +480,5 @@
     AssertPtrReturn(pszName,   VERR_INVALID_POINTER);
 
-    int rc = VINF_SUCCESS;
+    int rc = VERR_AUDIO_STREAM_COULD_NOT_CREATE;
 
     pa_stream *pStream = NULL;
@@ -498,5 +498,4 @@
         {
             LogRel(("PulseAudio: Unsupported sample specification for stream '%s'\n", pszName));
-            rc = VERR_NOT_SUPPORTED;
             break;
         }
@@ -539,5 +538,4 @@
                 LogRel(("PulseAudio: Could not connect input stream '%s': %s\n",
                         pszName, pa_strerror(pa_context_errno(pThis->pContext))));
-                rc = VERR_AUDIO_BACKEND_INIT_FAILED;
                 break;
             }
@@ -553,5 +551,4 @@
                 LogRel(("PulseAudio: Could not connect playback stream '%s': %s\n",
                         pszName, pa_strerror(pa_context_errno(pThis->pContext))));
-                rc = VERR_AUDIO_BACKEND_INIT_FAILED;
                 break;
             }
@@ -572,5 +569,4 @@
             {
                 LogRel(("PulseAudio: Failed to initialize stream '%s' (state %ld)\n", pszName, streamSt));
-                rc = VERR_AUDIO_BACKEND_INIT_FAILED;
                 break;
             }
@@ -593,4 +589,6 @@
         pStreamPA->pStream = pStream;
 
+        rc = VINF_SUCCESS;
+
     } while (0);
 
@@ -659,5 +657,4 @@
             LogRel(("PulseAudio: Failed to start threaded mainloop: %s\n",
                      pa_strerror(pa_context_errno(pThis->pContext))));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -674,5 +671,4 @@
             LogRel(("PulseAudio: Failed to connect to server: %s\n",
                      pa_strerror(pa_context_errno(pThis->pContext))));
-            rc = VERR_AUDIO_BACKEND_INIT_FAILED;
             break;
         }
@@ -692,5 +688,4 @@
             {
                 LogRel(("PulseAudio: Failed to initialize context (state %d)\n", cstate));
-                rc = VERR_AUDIO_BACKEND_INIT_FAILED;
                 break;
             }
