Index: trunk/include/VBox/vmm/pdmaudioifs.h
===================================================================
--- trunk/include/VBox/vmm/pdmaudioifs.h	(revision 89487)
+++ trunk/include/VBox/vmm/pdmaudioifs.h	(revision 89489)
@@ -641,10 +641,10 @@
 typedef struct PDMAUDIOSTREAMCFG
 {
+    /** The stream's PCM properties. */
+    PDMAUDIOPCMPROPS        Props;
     /** Direction of the stream. */
     PDMAUDIODIR             enmDir;
     /** Destination / source path. */
     PDMAUDIOPATH            enmPath;
-    /** The stream's PCM properties. */
-    PDMAUDIOPCMPROPS        Props;
     /** Device emulation-specific data needed for the audio connector. */
     struct
@@ -874,8 +874,8 @@
      *          - Before DRVAUDIO::CritSectHotPlug. */
     RTCRITSECT              CritSect;
+    /** Stream configuration. */
+    PDMAUDIOSTREAMCFG       Cfg;
     /** Magic value (PDMAUDIOSTREAM_MAGIC). */
     uint32_t                uMagic;
-    /** Audio direction of this stream. */
-    PDMAUDIODIR             enmDir;
     /** Size (in bytes) of the backend-specific stream data. */
     uint32_t                cbBackend;
@@ -883,9 +883,4 @@
      *  See PDMAUDIOSTREAM_WARN_FLAGS_XXX. */
     uint32_t                fWarningsShown;
-    /** The stream properties. */
-    PDMAUDIOPCMPROPS        Props;
-
-    /** Name of this stream. */
-    char                    szName[64];
 } PDMAUDIOSTREAM;
 /** Pointer to an audio stream. */
@@ -960,7 +955,7 @@
      * configuring host audio.
      *
-     * @param   pInterface      Pointer to this interface.
-     * @param   pCfg            The typical configuration.  Can be modified by the
-     *                          drivers in unspecified ways.
+     * @param   pInterface  Pointer to this interface.
+     * @param   pCfg        The typical configuration.  Can be modified by the
+     *                      drivers in unspecified ways.
      */
     DECLR3CALLBACKMEMBER(void, pfnStreamConfigHint, (PPDMIAUDIOCONNECTOR pInterface, PPDMAUDIOSTREAMCFG pCfg));
@@ -970,14 +965,13 @@
      *
      * @returns VBox status code.
-     * @param   pInterface      Pointer to the interface structure containing the called function pointer.
-     * @param   fFlags          PDMAUDIOSTREAM_CREATE_F_XXX.
-     * @param   pCfgHost        Stream configuration for host side.
-     * @param   pCfgGuest       Stream configuration for guest side.
-     * @param   ppStream        Pointer where to return the created audio stream on success.
-     * @todo r=bird: It is not documented how pCfgHost and pCfgGuest can be
-     *       modified the DrvAudio...
-     */
-    DECLR3CALLBACKMEMBER(int, pfnStreamCreate, (PPDMIAUDIOCONNECTOR pInterface, uint32_t fFlags, PPDMAUDIOSTREAMCFG pCfgHost,
-                                                PPDMAUDIOSTREAMCFG pCfgGuest, PPDMAUDIOSTREAM *ppStream));
+     * @param   pInterface  Pointer to this interface.
+     * @param   fFlags      PDMAUDIOSTREAM_CREATE_F_XXX.
+     * @param   pCfgReq     The requested stream configuration.  The actual stream
+     *                      configuration can be found in pStream->Cfg on success.
+     * @param   ppStream    Pointer where to return the created audio stream on
+     *                      success.
+     */
+    DECLR3CALLBACKMEMBER(int, pfnStreamCreate, (PPDMIAUDIOCONNECTOR pInterface, uint32_t fFlags, PCPDMAUDIOSTREAMCFG pCfgReq,
+                                                PPDMAUDIOSTREAM *ppStream));
 
 
@@ -1097,5 +1091,5 @@
 
 /** PDMIAUDIOCONNECTOR interface ID. */
-#define PDMIAUDIOCONNECTOR_IID                  "ae82616d-0da7-489a-aa4c-3e74d112ca9c"
+#define PDMIAUDIOCONNECTOR_IID                  "2900fe2a-6aeb-4953-ac12-f8965612f446"
 
 
@@ -1315,35 +1309,4 @@
                                                  PDMAUDIOSTREAMCMD enmStreamCmd));
 
-    /**
-     * Returns the amount which is readable from the audio (input) stream.
-     *
-     * @returns For non-raw layout streams: Number of readable bytes.
-     *          for raw layout streams    : Number of readable audio frames.
-     * @param   pInterface          Pointer to the interface structure containing the called function pointer.
-     * @param   pStream             Pointer to audio stream.
-     */
-    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetReadable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
-
-    /**
-     * Returns the amount which is writable to the audio (output) stream.
-     *
-     * @returns Number of writable bytes.
-     * @param   pInterface          Pointer to the interface structure containing the called function pointer.
-     * @param   pStream             Pointer to audio stream.
-     */
-    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetWritable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
-
-    /**
-     * Returns the number of buffered bytes that hasn't been played yet (optional).
-     *
-     * Is not valid on an input stream, implementions shall assert and return zero.
-     *
-     * @returns Number of pending bytes.
-     * @param   pInterface          Pointer to this interface.
-     * @param   pStream             Pointer to audio stream.
-     *
-     * @todo This is no longer not used by DrvAudio and can probably be removed.
-     */
-    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetPending, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
 
     /**
@@ -1356,4 +1319,26 @@
      */
     DECLR3CALLBACKMEMBER(PDMHOSTAUDIOSTREAMSTATE, pfnStreamGetState, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
+
+    /**
+     * Returns the number of buffered bytes that hasn't been played yet (optional).
+     *
+     * Is not valid on an input stream, implementions shall assert and return zero.
+     *
+     * @returns Number of pending bytes.
+     * @param   pInterface          Pointer to this interface.
+     * @param   pStream             Pointer to audio stream.
+     *
+     * @todo This is no longer not used by DrvAudio and can probably be removed.
+     */
+    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetPending, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
+
+    /**
+     * Returns the amount which is writable to the audio (output) stream.
+     *
+     * @returns Number of writable bytes.
+     * @param   pInterface          Pointer to the interface structure containing the called function pointer.
+     * @param   pStream             Pointer to audio stream.
+     */
+    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetWritable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
 
     /**
@@ -1378,4 +1363,14 @@
 
     /**
+     * Returns the amount which is readable from the audio (input) stream.
+     *
+     * @returns For non-raw layout streams: Number of readable bytes.
+     *          for raw layout streams    : Number of readable audio frames.
+     * @param   pInterface          Pointer to the interface structure containing the called function pointer.
+     * @param   pStream             Pointer to audio stream.
+     */
+    DECLR3CALLBACKMEMBER(uint32_t, pfnStreamGetReadable, (PPDMIHOSTAUDIO pInterface, PPDMAUDIOBACKENDSTREAM pStream));
+
+    /**
      * Captures (reads from) an audio (input) stream.
      *
@@ -1392,5 +1387,5 @@
 
 /** PDMIHOSTAUDIO interface ID. */
-#define PDMIHOSTAUDIO_IID                           "0625ae75-491b-428b-836e-4f8a9869788f"
+#define PDMIHOSTAUDIO_IID                           "147dedd7-cac1-469b-b545-335dbe90abf6"
 
 
@@ -1477,5 +1472,5 @@
 
 /** PDMIHOSTAUDIOPORT interface ID. */
-#define PDMIHOSTAUDIOPORT_IID                    "d42144e9-867e-4d1c-86d4-acb92b47f013"
+#define PDMIHOSTAUDIOPORT_IID                    "92ea5169-8271-402d-99a7-9de26a52acaf"
 
 /** @} */
