Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp	(revision 33021)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.cpp	(revision 33022)
@@ -1342,10 +1342,10 @@
 {
 #ifndef VBOX_WITH_HGSMI
-    ULONG ulAvailable = PrimaryExtension->u.primary.cbVRAM
-                        - PrimaryExtension->u.primary.cbMiniportHeap
+    ULONG ulAvailable = commonFromDeviceExt(PrimaryExtension)->cbVRAM
+                        - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap
                         - VBOX_VIDEO_ADAPTER_INFORMATION_SIZE;
 #else
-    ULONG ulAvailable = PrimaryExtension->u.primary.cbVRAM
-                        - PrimaryExtension->u.primary.cbMiniportHeap
+    ULONG ulAvailable = commonFromDeviceExt(PrimaryExtension)->cbVRAM
+                        - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap
                         - VBVA_ADAPTER_INFORMATION_SIZE;
 #endif /* VBOX_WITH_HGSMI */
@@ -1359,5 +1359,5 @@
 
     dprintf(("VBoxVideo::VBoxComputeFrameBufferSizes: cbVRAM = 0x%08X, cDisplays = %d, ulSize = 0x%08X, ulSize * cDisplays = 0x%08X, slack = 0x%08X\n",
-             PrimaryExtension->u.primary.cbVRAM, PrimaryExtension->u.primary.cDisplays,
+             commonFromDeviceExt(PrimaryExtension)->cbVRAM, PrimaryExtension->u.primary.cDisplays,
              ulSize, ulSize * PrimaryExtension->u.primary.cDisplays,
              ulAvailable - ulSize * PrimaryExtension->u.primary.cDisplays));
@@ -1457,5 +1457,5 @@
     Assert(PrimaryExtension);
 
-    PrimaryExtension->u.primary.pHostFlags = NULL;
+    commonFromDeviceExt(PrimaryExtension)->pHostFlags = NULL;
     return TRUE;
 }
@@ -1467,5 +1467,5 @@
     dprintf(("VBoxVideo::VBoxUnmapAdapterInformation\n"));
 
-    ppv = PrimaryExtension->u.primary.pvAdapterInformation;
+    ppv = commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation;
     if (ppv)
     {
@@ -1487,5 +1487,5 @@
         Assert(ntStatus == STATUS_SUCCESS);
 #endif
-        PrimaryExtension->u.primary.pvAdapterInformation = NULL;
+        commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation = NULL;
     }
 }
@@ -1527,5 +1527,5 @@
     } VBOXVIDEOQCONF32;
 
-    VBOXVIDEOQCONF32 *p = (VBOXVIDEOQCONF32 *)PrimaryExtension->u.primary.pvAdapterInformation;
+    VBOXVIDEOQCONF32 *p = (VBOXVIDEOQCONF32 *)commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation;
 
     p->hdrQuery.u8Type     = VBOX_VIDEO_INFO_TYPE_QUERY_CONF32;
@@ -1970,6 +1970,6 @@
 #ifdef VBOX_WITH_HGSMI
       /* pPrimary is not yet set */
-      ((PDEVICE_EXTENSION)HwDeviceExtension)->u.primary.hgsmiInfo.IOPortHost = (RTIOPORT)VGA_PORT_HGSMI_HOST;
-      ((PDEVICE_EXTENSION)HwDeviceExtension)->u.primary.hgsmiInfo.IOPortGuest = (RTIOPORT)VGA_PORT_HGSMI_GUEST;
+      ((PDEVICE_EXTENSION)HwDeviceExtension)->u.primary.commonInfo.IOPortHost = (RTIOPORT)VGA_PORT_HGSMI_HOST;
+      ((PDEVICE_EXTENSION)HwDeviceExtension)->u.primary.commonInfo.IOPortGuest = (RTIOPORT)VGA_PORT_HGSMI_GUEST;
 #endif /* VBOX_WITH_HGSMI */
 
@@ -2070,7 +2070,7 @@
     if (PrimaryExtension)
     {
-        if (PrimaryExtension->u.primary.pHostFlags) /* If HGSMI is enabled at all. */
-        {
-            uint32_t flags = PrimaryExtension->u.primary.pHostFlags->u32HostFlags;
+        if (commonFromDeviceExt(PrimaryExtension)->pHostFlags) /* If HGSMI is enabled at all. */
+        {
+            uint32_t flags = commonFromDeviceExt(PrimaryExtension)->pHostFlags->u32HostFlags;
             if((flags & HGSMIHOSTFLAGS_IRQ) != 0)
             {
@@ -2867,5 +2867,5 @@
     VbglTerminate ();
 
-    VBoxUnmapAdapterMemory (pDevExt, &pDevExt->u.primary.pvMiniportHeap, pDevExt->u.primary.cbMiniportHeap);
+    VBoxUnmapAdapterMemory (pDevExt, &commonFromDeviceExt(pDevExt)->pvMiniportHeap, commonFromDeviceExt(pDevExt)->cbMiniportHeap);
     VBoxUnmapAdapterInformation (pDevExt);
 
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h	(revision 33021)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideo.h	(revision 33022)
@@ -200,7 +200,26 @@
 #endif
 
+typedef struct VBOXVIDEO_COMMON
+{
+    ULONG cbVRAM;                       /* The VRAM size. */
+
+    ULONG cbMiniportHeap;               /* The size of reserved VRAM for miniport driver heap.
+                                         * It is at offset:
+                                         *   cbAdapterMemorySize - VBOX_VIDEO_ADAPTER_INFORMATION_SIZE - cbMiniportHeap
+                                         */
+    PVOID pvMiniportHeap;               /* The pointer to the miniport heap VRAM.
+                                         * This is mapped by miniport separately.
+                                         */
 #ifdef VBOX_WITH_HGSMI
-typedef struct VBOXVIDEO_COMMON
-{
+    volatile HGSMIHOSTFLAGS * pHostFlags; /* HGSMI host flags */
+    volatile bool bHostCmdProcessing;
+    VBOXVCMNSPIN_LOCK pSynchLock;
+#endif
+
+    PVOID pvAdapterInformation;         /* The pointer to the last 4K of VRAM.
+                                         * This is mapped by miniport separately.
+                                         */
+
+#ifdef VBOX_WITH_HGSMI
     BOOLEAN bHGSMI;                     /* Whether HGSMI is enabled. */
 
@@ -216,6 +235,6 @@
     /* The IO Port Number for guest commands. */
     RTIOPORT IOPortGuest;
+#endif
 } VBOXVIDEO_COMMON, *PVBOXVIDEO_COMMON;
-#endif
 
 typedef struct _DEVICE_EXTENSION
@@ -253,13 +272,4 @@
            int cDisplays;                      /* Number of displays. */
 
-           ULONG cbVRAM;                       /* The VRAM size. */
-
-           ULONG cbMiniportHeap;               /* The size of reserved VRAM for miniport driver heap.
-                                                * It is at offset:
-                                                *   cbAdapterMemorySize - VBOX_VIDEO_ADAPTER_INFORMATION_SIZE - cbMiniportHeap
-                                                */
-           PVOID pvMiniportHeap;               /* The pointer to the miniport heap VRAM.
-                                                * This is mapped by miniport separately.
-                                                */
 #ifdef VBOX_WITH_WDDM
            VBOXVDMAINFO Vdma;
@@ -269,14 +279,4 @@
 #endif
 
-#ifdef VBOX_WITH_HGSMI
-           volatile HGSMIHOSTFLAGS * pHostFlags; /* HGSMI host flags */
-           volatile bool bHostCmdProcessing;
-           VBOXVCMNSPIN_LOCK pSynchLock;
-#endif
-
-           PVOID pvAdapterInformation;         /* The pointer to the last 4K of VRAM.
-                                                * This is mapped by miniport separately.
-                                                */
-
            ULONG ulMaxFrameBufferSize;         /* The size of the VRAM allocated for the a single framebuffer. */
 
@@ -289,6 +289,6 @@
 #endif /* !VBOX_WITH_HGSMI */
 
+           VBOXVIDEO_COMMON commonInfo;
 #ifdef VBOX_WITH_HGSMI
-           VBOXVIDEO_COMMON hgsmiInfo;
 # ifndef VBOX_WITH_WDDM
            /* Video Port API dynamically picked up at runtime for binary backwards compatibility with older NT versions */
@@ -347,7 +347,7 @@
 {
 #ifndef VBOX_WITH_WDDM
-    return &pExt->pPrimary->u.primary.hgsmiInfo;
+    return &pExt->pPrimary->u.primary.commonInfo;
 #else
-    return &pExt->u.primary.hgsmiInfo;
+    return &pExt->u.primary.commonInfo;
 #endif
 }
@@ -888,5 +888,5 @@
 }
 
-BOOLEAN VBoxHGSMIIsSupported (PDEVICE_EXTENSION PrimaryExtension);
+BOOLEAN VBoxHGSMIIsSupported (void);
 
 VOID VBoxSetupDisplaysHGSMI (PDEVICE_EXTENSION PrimaryExtension,
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideoHGSMI.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideoHGSMI.cpp	(revision 33021)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/VBoxVideoHGSMI.cpp	(revision 33022)
@@ -120,5 +120,5 @@
     {
         bool bLock = false;
-        if(!(PrimaryExtension->u.primary.pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING))
+        if(!(commonFromDeviceExt(PrimaryExtension)->pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING))
         {
             if(!bProcessing)
@@ -126,13 +126,13 @@
                 break;
             }
-            VBOX_HGSMI_LOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, &OldIrql);
-            if(!(PrimaryExtension->u.primary.pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING))
-            {
-                Assert(PrimaryExtension->u.primary.bHostCmdProcessing);
-                PrimaryExtension->u.primary.bHostCmdProcessing = false;
-                VBOX_HGSMI_UNLOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, OldIrql);
+            VBOX_HGSMI_LOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, &OldIrql);
+            if(!(commonFromDeviceExt(PrimaryExtension)->pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING))
+            {
+                Assert(commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing);
+                commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing = false;
+                VBOX_HGSMI_UNLOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, OldIrql);
                 break;
             }
-            VBOX_HGSMI_UNLOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, OldIrql);
+            VBOX_HGSMI_UNLOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, OldIrql);
         }
         else
@@ -140,14 +140,14 @@
             if(!bProcessing)
             {
-                VBOX_HGSMI_LOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, &OldIrql);
-                if(!(PrimaryExtension->u.primary.pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING)
-                        || PrimaryExtension->u.primary.bHostCmdProcessing)
+                VBOX_HGSMI_LOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, &OldIrql);
+                if(!(commonFromDeviceExt(PrimaryExtension)->pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING)
+                        || commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing)
                 {
-                    VBOX_HGSMI_UNLOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, OldIrql);
+                    VBOX_HGSMI_UNLOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, OldIrql);
                     break;
                 }
-                Assert(!PrimaryExtension->u.primary.bHostCmdProcessing);
-                PrimaryExtension->u.primary.bHostCmdProcessing = true;
-                VBOX_HGSMI_UNLOCK(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock, flags, OldIrql);
+                Assert(!commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing);
+                commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing = true;
+                VBOX_HGSMI_UNLOCK(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock, flags, OldIrql);
                 bProcessing = true;
             }
@@ -155,6 +155,6 @@
 
         Assert(bProcessing);
-        Assert(PrimaryExtension->u.primary.bHostCmdProcessing);
-        Assert((PrimaryExtension->u.primary.pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING) != 0);
+        Assert(commonFromDeviceExt(PrimaryExtension)->bHostCmdProcessing);
+        Assert((commonFromDeviceExt(PrimaryExtension)->pHostFlags->u32HostFlags & HGSMIHOSTFLAGS_COMMANDS_PENDING) != 0);
         bProcessing = true;
 
@@ -164,5 +164,5 @@
 
 /* Detect whether HGSMI is supported by the host. */
-BOOLEAN VBoxHGSMIIsSupported (PDEVICE_EXTENSION PrimaryExtension)
+BOOLEAN VBoxHGSMIIsSupported (void)
 {
     USHORT DispiId;
@@ -404,8 +404,8 @@
     VBVAINFOHEAP *p = (VBVAINFOHEAP *)pvData;
 
-    p->u32HeapOffset = PrimaryExtension->u.primary.cbVRAM
-                       - PrimaryExtension->u.primary.cbMiniportHeap
+    p->u32HeapOffset = commonFromDeviceExt(PrimaryExtension)->cbVRAM
+                       - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap
                        - VBVA_ADAPTER_INFORMATION_SIZE;
-    p->u32HeapSize = PrimaryExtension->u.primary.cbMiniportHeap;
+    p->u32HeapSize = commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap;
 
     return VINF_SUCCESS;
@@ -417,5 +417,5 @@
     HGSMIBUFFERLOCATION *p = (HGSMIBUFFERLOCATION *)pvData;
 
-    p->offLocation = PrimaryExtension->u.primary.cbVRAM - sizeof (HGSMIHOSTFLAGS);
+    p->offLocation = commonFromDeviceExt(PrimaryExtension)->cbVRAM - sizeof (HGSMIHOSTFLAGS);
     p->cbLocation = sizeof (HGSMIHOSTFLAGS);
 
@@ -724,4 +724,5 @@
     /* Preinitialize the primary extension.
      * Note: bVBoxVideoSupported is set to FALSE, because HGSMI is active instead.
+     * Note 2: shouldn't be needed for WDDM.
      */
     PrimaryExtension->pNext                              = NULL;
@@ -737,11 +738,11 @@
     PrimaryExtension->u.primary.cDisplays                = 1;
 #endif
-    PrimaryExtension->u.primary.cbVRAM                   = AdapterMemorySize;
-    PrimaryExtension->u.primary.cbMiniportHeap           = 0;
-    PrimaryExtension->u.primary.pvMiniportHeap           = NULL;
-    PrimaryExtension->u.primary.pvAdapterInformation     = NULL;
-    PrimaryExtension->u.primary.pHostFlags               = NULL;
+    commonFromDeviceExt(PrimaryExtension)->cbVRAM                   = AdapterMemorySize;
+    commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap           = 0;
+    commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap           = NULL;
+    commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation     = NULL;
+    commonFromDeviceExt(PrimaryExtension)->pHostFlags               = NULL;
     PrimaryExtension->u.primary.ulMaxFrameBufferSize     = 0;
-    commonFromDeviceExt(PrimaryExtension)->bHGSMI         = VBoxHGSMIIsSupported (PrimaryExtension);
+    commonFromDeviceExt(PrimaryExtension)->bHGSMI         = VBoxHGSMIIsSupported ();
     VBoxVideoCmnMemZero(&commonFromDeviceExt(PrimaryExtension)->areaHostHeap, sizeof(HGSMIAREA));
     VBoxVideoCmnMemZero(&PrimaryExtension->areaDisplay, sizeof(HGSMIAREA));
@@ -756,6 +757,6 @@
         /* Map the adapter information. It will be needed for HGSMI IO. */
         rc = VBoxMapAdapterMemory (PrimaryExtension,
-                                   &PrimaryExtension->u.primary.pvAdapterInformation,
-                                   PrimaryExtension->u.primary.cbVRAM - VBVA_ADAPTER_INFORMATION_SIZE,
+                                   &commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation,
+                                   commonFromDeviceExt(PrimaryExtension)->cbVRAM - VBVA_ADAPTER_INFORMATION_SIZE,
                                    VBVA_ADAPTER_INFORMATION_SIZE
                                   );
@@ -771,7 +772,7 @@
             /* Setup a HGSMI heap within the adapter information area. */
             rc = HGSMIHeapSetup (&commonFromDeviceExt(PrimaryExtension)->hgsmiAdapterHeap,
-                                 PrimaryExtension->u.primary.pvAdapterInformation,
+                                 commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation,
                                  VBVA_ADAPTER_INFORMATION_SIZE - sizeof(HGSMIHOSTFLAGS),
-                                 PrimaryExtension->u.primary.cbVRAM - VBVA_ADAPTER_INFORMATION_SIZE,
+                                 commonFromDeviceExt(PrimaryExtension)->cbVRAM - VBVA_ADAPTER_INFORMATION_SIZE,
                                  false /*fOffsetBased*/);
 
@@ -785,5 +786,5 @@
             else
             {
-                    PrimaryExtension->u.primary.pHostFlags = (HGSMIHOSTFLAGS*)(((uint8_t*)PrimaryExtension->u.primary.pvAdapterInformation)
+                    commonFromDeviceExt(PrimaryExtension)->pHostFlags = (HGSMIHOSTFLAGS*)(((uint8_t*)commonFromDeviceExt(PrimaryExtension)->pvAdapterInformation)
                                                             + VBVA_ADAPTER_INFORMATION_SIZE - sizeof(HGSMIHOSTFLAGS));
             }
@@ -814,8 +815,8 @@
 
             /* Round up to 4096 bytes. */
-            PrimaryExtension->u.primary.cbMiniportHeap = (cbMiniportHeap + 0xFFF) & ~0xFFF;
+            commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap = (cbMiniportHeap + 0xFFF) & ~0xFFF;
 
             dprintf(("VBoxVideo::VBoxSetupDisplays: cbMiniportHeap = 0x%08X, PrimaryExtension->u.primary.cbMiniportHeap = 0x%08X, cbMiniportHeapMaxSize = 0x%08X\n",
-                     cbMiniportHeap, PrimaryExtension->u.primary.cbMiniportHeap, cbMiniportHeapMaxSize));
+                     cbMiniportHeap, commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap, cbMiniportHeapMaxSize));
 
             /* Map the heap region.
@@ -826,26 +827,26 @@
              */
             rc = VBoxMapAdapterMemory (PrimaryExtension,
-                                       &PrimaryExtension->u.primary.pvMiniportHeap,
-                                       PrimaryExtension->u.primary.cbVRAM
+                                       &commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap,
+                                       commonFromDeviceExt(PrimaryExtension)->cbVRAM
                                        - VBVA_ADAPTER_INFORMATION_SIZE
-                                       - PrimaryExtension->u.primary.cbMiniportHeap,
-                                       PrimaryExtension->u.primary.cbMiniportHeap
+                                       - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap,
+                                       commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap
                                       );
             if (rc != NO_ERROR)
             {
-                PrimaryExtension->u.primary.pvMiniportHeap = NULL;
-                PrimaryExtension->u.primary.cbMiniportHeap = 0;
+                commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap = NULL;
+                commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap = 0;
                 commonFromDeviceExt(PrimaryExtension)->bHGSMI = FALSE;
             }
             else
             {
-                HGSMIOFFSET offBase = PrimaryExtension->u.primary.cbVRAM
+                HGSMIOFFSET offBase = commonFromDeviceExt(PrimaryExtension)->cbVRAM
                                       - VBVA_ADAPTER_INFORMATION_SIZE
-                                      - PrimaryExtension->u.primary.cbMiniportHeap;
+                                      - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap;
 
                 /* Init the host hap area. Buffers from the host will be placed there. */
                 HGSMIAreaInitialize (&commonFromDeviceExt(PrimaryExtension)->areaHostHeap,
-                                     PrimaryExtension->u.primary.pvMiniportHeap,
-                                     PrimaryExtension->u.primary.cbMiniportHeap,
+                                     commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap,
+                                     commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap,
                                      offBase);
             }
@@ -854,6 +855,6 @@
         {
             /* Host has not requested a heap. */
-            PrimaryExtension->u.primary.pvMiniportHeap = NULL;
-            PrimaryExtension->u.primary.cbMiniportHeap = 0;
+            commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap = NULL;
+            commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap = 0;
         }
     }
@@ -953,6 +954,6 @@
     if (commonFromDeviceExt(PrimaryExtension)->bHGSMI)
     {
-        ULONG ulAvailable = PrimaryExtension->u.primary.cbVRAM
-                            - PrimaryExtension->u.primary.cbMiniportHeap
+        ULONG ulAvailable = commonFromDeviceExt(PrimaryExtension)->cbVRAM
+                            - commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap
                             - VBVA_ADAPTER_INFORMATION_SIZE;
 
@@ -1047,5 +1048,5 @@
     {
         /* Unmap the memory if VBoxVideo is not supported. */
-        VBoxUnmapAdapterMemory (PrimaryExtension, &PrimaryExtension->u.primary.pvMiniportHeap, PrimaryExtension->u.primary.cbMiniportHeap);
+        VBoxUnmapAdapterMemory (PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap, commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap);
         VBoxUnmapAdapterInformation (PrimaryExtension);
 
@@ -1055,5 +1056,5 @@
     if (commonFromDeviceExt(PrimaryExtension)->bHGSMI)
     {
-        VBoxVideoCmnSpinLockCreate(PrimaryExtension, &PrimaryExtension->u.primary.pSynchLock);
+        VBoxVideoCmnSpinLockCreate(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pSynchLock);
     }
 
@@ -1093,5 +1094,5 @@
         if (RT_SUCCESS(rc))
         {
-            /*rc = */VBoxUnmapAdapterMemory(PrimaryExtension, &PrimaryExtension->u.primary.pvMiniportHeap, PrimaryExtension->u.primary.cbMiniportHeap);
+            /*rc = */VBoxUnmapAdapterMemory(PrimaryExtension, &commonFromDeviceExt(PrimaryExtension)->pvMiniportHeap, commonFromDeviceExt(PrimaryExtension)->cbMiniportHeap);
 /*
             AssertRC(rc);
Index: /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp
===================================================================
--- /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp	(revision 33021)
+++ /trunk/src/VBox/Additions/WINNT/Graphics/Miniport/wddm/VBoxVideoWddm.cpp	(revision 33022)
@@ -419,5 +419,5 @@
         */
        *pAdapterMemorySize = VBoxVideoCmnPortReadUlong((PULONG)VBE_DISPI_IOPORT_DATA);
-       if (VBoxHGSMIIsSupported (pContext))
+       if (VBoxHGSMIIsSupported ())
        {
            commonFromDeviceExt(pContext)->IOPortHost = (RTIOPORT)VGA_PORT_HGSMI_HOST;
@@ -771,5 +771,5 @@
     BOOLEAN bOur = FALSE;
     BOOLEAN bNeedDpc = FALSE;
-    if (pDevExt->u.primary.pHostFlags) /* If HGSMI is enabled at all. */
+    if (commonFromDeviceExt(pDevExt)->pHostFlags) /* If HGSMI is enabled at all. */
     {
         VBOXSHGSMILIST CtlList;
@@ -787,5 +787,5 @@
 #endif
 
-        uint32_t flags = pDevExt->u.primary.pHostFlags->u32HostFlags;
+        uint32_t flags = commonFromDeviceExt(pDevExt)->pHostFlags->u32HostFlags;
         bOur = (flags & HGSMIHOSTFLAGS_IRQ);
         do
@@ -857,5 +857,5 @@
                 break;
 
-            flags = pDevExt->u.primary.pHostFlags->u32HostFlags;
+            flags = commonFromDeviceExt(pDevExt)->pHostFlags->u32HostFlags;
         } while (1);
 
