static const char *drv_name = "blkvsc";
 
-/* {32412632-86cb-44a2-9b5c-50d1417354f5} */
-static const uuid_le dev_type = {
-       .b = {
-               0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44,
-               0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5
-       }
-};
-
 /*
  * There is a circular dependency involving blkvsc_request_completion()
  * and blkvsc_do_request().
        }
 }
 
+static const struct hv_vmbus_device_id id_table[] = {
+       {
+               /* IDE guid */
+               .guid = {
+                       0x32, 0x26, 0x41, 0x32, 0xcb, 0x86, 0xa2, 0x44,
+                       0x9b, 0x5c, 0x50, 0xd1, 0x41, 0x73, 0x54, 0xf5
+               }
+       },
+       {
+               .guid = { }
+       },
+};
 
+MODULE_DEVICE_TABLE(vmbus, id_table);
 
 /* The one and only one */
 static  struct hv_driver blkvsc_drv = {
+       .id_table = id_table,
        .probe =  blkvsc_probe,
        .remove =  blkvsc_remove,
        .shutdown = blkvsc_shutdown,
 
        BUILD_BUG_ON(sizeof(sector_t) != 8);
 
-       memcpy(&drv->dev_type, &dev_type, sizeof(uuid_le));
        drv->driver.name = drv_name;
 
        /* The driver belongs to vmbus */