Index: trunk/src/VBox/Storage/DMG.cpp
===================================================================
--- trunk/src/VBox/Storage/DMG.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/DMG.cpp	(revision 63905)
@@ -2406,8 +2406,8 @@
 const VDIMAGEBACKEND g_DmgBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "DMG",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_FILE | VD_CAP_VFS,
@@ -2499,5 +2499,7 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
 
Index: trunk/src/VBox/Storage/ISCSI.cpp
===================================================================
--- trunk/src/VBox/Storage/ISCSI.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/ISCSI.cpp	(revision 63905)
@@ -5497,8 +5497,8 @@
 const VDIMAGEBACKEND g_ISCSIBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "iSCSI",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_CONFIG | VD_CAP_TCPNET | VD_CAP_ASYNC,
@@ -5590,4 +5590,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/Parallels.cpp
===================================================================
--- trunk/src/VBox/Storage/Parallels.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/Parallels.cpp	(revision 63905)
@@ -1069,8 +1069,8 @@
 const VDIMAGEBACKEND g_ParallelsBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "Parallels",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_FILE | VD_CAP_ASYNC | VD_CAP_VFS | VD_CAP_CREATE_DYNAMIC | VD_CAP_DIFF,
@@ -1162,4 +1162,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/QCOW.cpp
===================================================================
--- trunk/src/VBox/Storage/QCOW.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/QCOW.cpp	(revision 63905)
@@ -2317,8 +2317,8 @@
 const VDIMAGEBACKEND g_QCowBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "QCOW",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_FILE | VD_CAP_VFS | VD_CAP_CREATE_DYNAMIC | VD_CAP_DIFF | VD_CAP_ASYNC,
@@ -2410,4 +2410,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/QED.cpp
===================================================================
--- trunk/src/VBox/Storage/QED.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/QED.cpp	(revision 63905)
@@ -2373,8 +2373,8 @@
 const VDIMAGEBACKEND g_QedBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "QED",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_FILE | VD_CAP_VFS | VD_CAP_CREATE_DYNAMIC | VD_CAP_DIFF | VD_CAP_ASYNC,
@@ -2466,4 +2466,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32Version */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/RAW.cpp
===================================================================
--- trunk/src/VBox/Storage/RAW.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/RAW.cpp	(revision 63905)
@@ -957,8 +957,8 @@
 const VDIMAGEBACKEND g_RawBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "RAW",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_CREATE_FIXED | VD_CAP_FILE | VD_CAP_ASYNC | VD_CAP_VFS,
@@ -1050,4 +1050,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/VCICache.cpp
===================================================================
--- trunk/src/VBox/Storage/VCICache.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VCICache.cpp	(revision 63905)
@@ -1983,8 +1983,8 @@
 const VDCACHEBACKEND g_VciCacheBackend =
 {
+    /* u32Version */
+    VD_CACHEBACKEND_VERSION,
     /* pszBackendName */
     "vci",
-    /* cbSize */
-    sizeof(VDCACHEBACKEND),
     /* uBackendCaps */
     VD_CAP_CREATE_FIXED | VD_CAP_CREATE_DYNAMIC | VD_CAP_FILE | VD_CAP_VFS,
@@ -2038,5 +2038,7 @@
     NULL,
     /* pfnComposeName */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_CACHEBACKEND_VERSION
 };
 
Index: trunk/src/VBox/Storage/VD.cpp
===================================================================
--- trunk/src/VBox/Storage/VD.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VD.cpp	(revision 63905)
@@ -3547,9 +3547,9 @@
     int rc = VINF_SUCCESS;
 
-    if (pBackend->cbSize == sizeof(VDIMAGEBACKEND))
+    if (VD_VERSION_ARE_COMPATIBLE(VD_IMGBACKEND_VERSION, pBackend->u32Version))
         vdAddBackend((RTLDRMOD)pvUser, pBackend);
     else
     {
-        LogFunc(("ignored plugin: pBackend->cbSize=%d rc=%Rrc\n", pBackend->cbSize, rc));
+        LogFunc(("ignored plugin: pBackend->u32Version=%u rc=%Rrc\n", pBackend->u32Version, rc));
         rc = VERR_IGNORED;
     }
@@ -3565,9 +3565,9 @@
     int rc = VINF_SUCCESS;
 
-    if (pBackend->cbSize == sizeof(VDCACHEBACKEND))
+    if (VD_VERSION_ARE_COMPATIBLE(VD_CACHEBACKEND_VERSION, pBackend->u32Version))
         vdAddCacheBackend((RTLDRMOD)pvUser, pBackend);
     else
     {
-        LogFunc(("ignored plugin: pBackend->cbSize=%d rc=%Rrc\n", pBackend->cbSize, rc));
+        LogFunc(("ignored plugin: pBackend->u32Version=%u rc=%Rrc\n", pBackend->u32Version, rc));
         rc = VERR_IGNORED;
     }
@@ -3583,9 +3583,9 @@
     int rc = VINF_SUCCESS;
 
-    if (pBackend->cbSize == sizeof(VDFILTERBACKEND))
+    if (VD_VERSION_ARE_COMPATIBLE(VD_FLTBACKEND_VERSION, pBackend->u32Version))
         vdAddFilterBackend((RTLDRMOD)pvUser, pBackend);
     else
     {
-        LogFunc(("ignored plugin: pBackend->cbSize=%d rc=%Rrc\n", pBackend->cbSize, rc));
+        LogFunc(("ignored plugin: pBackend->u32Version=%u rc=%Rrc\n", pBackend->u32Version, rc));
         rc = VERR_IGNORED;
     }
@@ -3720,4 +3720,5 @@
         PFNVDPLUGINLOAD pfnVDPluginLoad = NULL;
 
+        BackendRegister.u32Version        = VD_BACKENDREG_CB_VERSION;
         BackendRegister.pfnRegisterImage  = vdPluginRegisterImage;
         BackendRegister.pfnRegisterCache  = vdPluginRegisterCache;
Index: trunk/src/VBox/Storage/VDI.cpp
===================================================================
--- trunk/src/VBox/Storage/VDI.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VDI.cpp	(revision 63905)
@@ -3000,8 +3000,8 @@
 const VDIMAGEBACKEND g_VDIBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "VDI",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
       VD_CAP_UUID | VD_CAP_CREATE_FIXED | VD_CAP_CREATE_DYNAMIC
@@ -3095,4 +3095,6 @@
     vdiRepair,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/VHD.cpp
===================================================================
--- trunk/src/VBox/Storage/VHD.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VHD.cpp	(revision 63905)
@@ -3011,8 +3011,8 @@
 const VDIMAGEBACKEND g_VhdBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "VHD",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_UUID | VD_CAP_DIFF | VD_CAP_FILE |
@@ -3106,4 +3106,6 @@
     vhdRepair,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/VHDX.cpp
===================================================================
--- trunk/src/VBox/Storage/VHDX.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VHDX.cpp	(revision 63905)
@@ -2489,8 +2489,8 @@
 const VDIMAGEBACKEND g_VhdxBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "VHDX",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
     VD_CAP_FILE | VD_CAP_VFS,
@@ -2582,4 +2582,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
Index: trunk/src/VBox/Storage/VMDK.cpp
===================================================================
--- trunk/src/VBox/Storage/VMDK.cpp	(revision 63903)
+++ trunk/src/VBox/Storage/VMDK.cpp	(revision 63905)
@@ -6347,8 +6347,8 @@
 const VDIMAGEBACKEND g_VmdkBackend =
 {
+    /* u32Version */
+    VD_IMGBACKEND_VERSION,
     /* pszBackendName */
     "VMDK",
-    /* cbSize */
-    sizeof(VDIMAGEBACKEND),
     /* uBackendCaps */
       VD_CAP_UUID | VD_CAP_CREATE_FIXED | VD_CAP_CREATE_DYNAMIC
@@ -6442,4 +6442,6 @@
     NULL,
     /* pfnTraverseMetadata */
-    NULL
+    NULL,
+    /* u32VersionEnd */
+    VD_IMGBACKEND_VERSION
 };
