Index: /trunk/src/VBox/Devices/Audio/DevHDACommon.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/DevHDACommon.h	(revision 71753)
+++ /trunk/src/VBox/Devices/Audio/DevHDACommon.h	(revision 71754)
@@ -572,5 +572,8 @@
      *  Not part of the actual BDLE registers. */
     HDABDLESTATE State;
-} HDABDLE, *PHDABDLE;
+} HDABDLE;
+AssertCompileSizeAlignment(HDABDLE, 8);
+/** Pointer to a buffer descriptor list entry (BDLE). */
+typedef HDABDLE *PHDABDLE;
 
 /** @name Object lookup functions.
Index: /trunk/src/VBox/Devices/Audio/HDAStream.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStream.h	(revision 71753)
+++ /trunk/src/VBox/Devices/Audio/HDAStream.h	(revision 71754)
@@ -118,5 +118,5 @@
     volatile bool           fRunning;
     /** Unused, padding. */
-    uint8_t                 Padding0[3];
+    uint8_t                 Padding0[4];
 #ifdef VBOX_WITH_AUDIO_HDA_ASYNC_IO
     /** Asynchronous I/O state members. */
@@ -129,4 +129,7 @@
     /** Circular buffer (FIFO) for holding DMA'ed data. */
     R3PTRTYPE(PRTCIRCBUF)   pCircBuf;
+#if HC_ARCH_BITS == 32
+    RTR3PTR                 Padding1;
+#endif
     /** Timestamp of the last DMA data transfer. */
     uint64_t                tsTransferLast;
@@ -172,6 +175,8 @@
     uint16_t                cbDMALeft;
     /** Unused, padding. */
-    uint8_t                 Padding3;
-} HDASTREAMSTATE, *PHDASTREAMSTATE;
+    uint8_t                 abPadding3[2+4];
+} HDASTREAMSTATE;
+AssertCompileSizeAlignment(HDASTREAMSTATE, 8);
+typedef HDASTREAMSTATE *PHDASTREAMSTATE;
 
 /**
Index: /trunk/src/VBox/Devices/Audio/HDAStreamMap.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStreamMap.h	(revision 71753)
+++ /trunk/src/VBox/Devices/Audio/HDAStreamMap.h	(revision 71754)
@@ -32,5 +32,7 @@
     /** Circular buffer holding for holding audio data for this mapping. */
     R3PTRTYPE(PRTCIRCBUF)             pCircBuf;
-} HDASTREAMMAPPING, *PHDASTREAMMAPPING;
+} HDASTREAMMAPPING;
+AssertCompileSizeAlignment(HDASTREAMMAPPING, 8);
+typedef HDASTREAMMAPPING *PHDASTREAMMAPPING;
 
 /** @name Stream mapping functions.
Index: /trunk/src/VBox/Devices/Audio/HDAStreamPeriod.h
===================================================================
--- /trunk/src/VBox/Devices/Audio/HDAStreamPeriod.h	(revision 71753)
+++ /trunk/src/VBox/Devices/Audio/HDAStreamPeriod.h	(revision 71754)
@@ -52,12 +52,13 @@
 typedef struct HDASTREAMPERIOD
 {
+    /** Critical section for serializing access. */
+    RTCRITSECT              CritSect;
     /** Associated HDA stream descriptor (SD) number. */
     uint8_t                 u8SD;
     /** The period's status flags. */
     uint8_t                 fStatus;
-    uint8_t                 Padding1[6];
-    /** Critical section for serializing access. */
-    RTCRITSECT              CritSect;
-    uint32_t                Padding2[1];
+    /** Number of pending interrupts required for this period. */
+    uint8_t                 cIntPending;
+    uint8_t                 bPadding0;
     /** Hertz (Hz) rate this period runs with. */
     uint32_t                u32Hz;
@@ -74,12 +75,12 @@
     /** Number of audio frames already transfered. */
     uint32_t                framesTransferred;
-    /** Number of pending interrupts required for this period. */
-    uint8_t                 cIntPending;
-    uint8_t                 Padding3[7];
 #ifdef LOG_ENABLED
     /** Debugging information. */
     HDASTREAMPERIODDBGINFO  Dbg;
 #endif
-} HDASTREAMPERIOD, *PHDASTREAMPERIOD;
+} HDASTREAMPERIOD;
+AssertCompileSizeAlignment(HDASTREAMPERIOD, 8);
+/** Pointer to a HDA stream's time period keeper. */
+typedef HDASTREAMPERIOD *PHDASTREAMPERIOD;
 
 #ifdef IN_RING3
