Index: /trunk/src/VBox/Storage/VHDX.cpp
===================================================================
--- /trunk/src/VBox/Storage/VHDX.cpp	(revision 41349)
+++ /trunk/src/VBox/Storage/VHDX.cpp	(revision 41350)
@@ -1125,6 +1125,6 @@
     LogFlowFunc(("pImage=%#p\n", pImage));
 
-    /** Calculate required values first. */
-    uChunkRatio = (RT_BIT_32(23) * pImage->cbLogicalSector) / pImage->cbBlock;
+    /* Calculate required values first. */
+    uChunkRatio = (RT_BIT_64(23) * pImage->cbLogicalSector) / pImage->cbBlock;
     cDataBlocks = pImage->cbSize / pImage->cbBlock;
     if (pImage->cbSize % pImage->cbBlock)
@@ -1574,5 +1574,6 @@
                         {
                             fBatRegPresent = true;
-                            RegTblEntryBat = *pRegTblEntry;
+                            RegTblEntryBat.u32Length = pRegTblEntry->u32Length;
+                            RegTblEntryBat.u64FileOffset = pRegTblEntry->u64FileOffset;
                         }
                         else
@@ -1852,5 +1853,5 @@
     LogFlowFunc(("pBackendData=%#p uOffset=%llu pvBuf=%#p cbToRead=%zu pcbActuallyRead=%#p\n", pBackendData, uOffset, pvBuf, cbToRead, pcbActuallyRead));
     PVHDXIMAGE pImage = (PVHDXIMAGE)pBackendData;
-    int rc;
+    int rc = VINF_SUCCESS;
 
     AssertPtr(pImage);
