SubCompatibleID: "UNIV1"}\r
 };\r
 \r
-uint16_t USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
+uint16_t CALLBACK_USB_GetDescriptor(const uint16_t wValue, const uint8_t wIndex, void** const DescriptorAddress)\r
 {\r
        const uint8_t  DescriptorType   = (wValue >> 8);\r
        const uint8_t  DescriptorNumber = (wValue & 0xFF);\r
        switch (DescriptorType)\r
        {\r
                case DTYPE_Device:\r
-                       Address = DESCRIPTOR_ADDRESS(DeviceDescriptor);\r
+                       Address = (void*)&DeviceDescriptor;\r
                        Size    = sizeof(USB_Descriptor_Device_t);\r
                        break;\r
                case DTYPE_Configuration:\r
-                       Address = DESCRIPTOR_ADDRESS(ConfigurationDescriptor);\r
+                       Address = (void*)&ConfigurationDescriptor;\r
                        Size    = sizeof(USB_Descriptor_Configuration_t);\r
                        break;\r
                case DTYPE_String:\r
                        switch (DescriptorNumber)\r
                        {\r
                                case 0x00:\r
-                                       Address = DESCRIPTOR_ADDRESS(LanguageString);\r
+                                       Address = (void*)&LanguageString;\r
                                        Size    = pgm_read_byte(&LanguageString.Header.Size);\r
                                        break;\r
                                case 0x01:\r
-                                       Address = DESCRIPTOR_ADDRESS(ManufacturerString);\r
+                                       Address = (void*)&ManufacturerString;\r
                                        Size    = pgm_read_byte(&ManufacturerString.Header.Size);\r
                                        break;\r
                                case 0x02:\r
-                                       Address = DESCRIPTOR_ADDRESS(ProductString);\r
+                                       Address = (void*)&ProductString;\r
                                        Size    = pgm_read_byte(&ProductString.Header.Size);\r
                                        break;\r
                                case 0x03:\r
-                                       Address = DESCRIPTOR_ADDRESS(SerialNumberString);\r
+                                       Address = (void*)&SerialNumberString;\r
                                        Size    = pgm_read_byte(&SerialNumberString.Header.Size);\r
                                        break;\r
                                case 0xEE:\r
                                           our device is Sideshow compatible. Most people would be happy using the normal\r
                                           0xFF 0x?? 0x?? Class/Subclass/Protocol values like the USBIF intended. */\r
                                           \r
-                                       Address = DESCRIPTOR_ADDRESS(OSDescriptorString);\r
+                                       Address = (void*)&OSDescriptorString;\r
                                        Size    = pgm_read_byte(&OSDescriptorString.Header.Size);\r
                                        break;\r
                        }\r
                /* Only the Extended Device Compatibility descriptor is supported */\r
                if (wIndex == EXTENDED_COMPAT_ID_DESCRIPTOR)\r
                {\r
-                       Address = DESCRIPTOR_ADDRESS(DevCompatIDs);\r
+                       Address = (void*)&DevCompatIDs;\r
                        Size    = sizeof(USB_OSCompatibleIDDescriptor_t);\r
                }\r
        }\r