\r
                /* Function Prototypes: */\r
                        /** Searches for the next descriptor in the given configuration descriptor using a premade comparator\r
 \r
                /* Function Prototypes: */\r
                        /** Searches for the next descriptor in the given configuration descriptor using a premade comparator\r
                         *  \return A value from the \ref USB_Host_GetConfigDescriptor_ErrorCodes_t enum\r
                         */\r
                        uint8_t USB_Host_GetDeviceConfigDescriptor(uint8_t ConfigNumber, uint16_t* const ConfigSizePtr, void* BufferPtr,\r
                         *  \return A value from the \ref USB_Host_GetConfigDescriptor_ErrorCodes_t enum\r
                         */\r
                        uint8_t USB_Host_GetDeviceConfigDescriptor(uint8_t ConfigNumber, uint16_t* const ConfigSizePtr, void* BufferPtr,\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value.\r
                         *  The bytes remaining value is automatically decremented.\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value.\r
                         *  The bytes remaining value is automatically decremented.\r
                        void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
                                                         void** const CurrConfigLoc,\r
                                                         const uint8_t Type)\r
                        void USB_GetNextDescriptorOfType(uint16_t* const BytesRem,\r
                                                         void** const CurrConfigLoc,\r
                                                         const uint8_t Type)\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
                         *  which must come before a descriptor of the second given type value. If the BeforeType type\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
                         *  which must come before a descriptor of the second given type value. If the BeforeType type\r
                                                               void** const CurrConfigLoc,\r
                                                               const uint8_t Type,\r
                                                               const uint8_t BeforeType)\r
                                                               void** const CurrConfigLoc,\r
                                                               const uint8_t Type,\r
                                                               const uint8_t BeforeType)\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
                         *  which must come after a descriptor of the second given type value. The bytes remaining value is\r
 \r
                        /** Skips to the next sub-descriptor inside the configuration descriptor of the specified type value,\r
                         *  which must come after a descriptor of the second given type value. The bytes remaining value is\r
                                                              void** const CurrConfigLoc,\r
                                                              const uint8_t Type,\r
                                                              const uint8_t AfterType)\r
                                                              void** const CurrConfigLoc,\r
                                                              const uint8_t Type,\r
                                                              const uint8_t AfterType)\r
 \r
                /* Inline Functions: */\r
                        /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then\r
 \r
                /* Inline Functions: */\r
                        /** Skips over the current sub-descriptor inside the configuration descriptor, so that the pointer then\r
                         */\r
                        static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
                                                                 void** const CurrConfigLoc) \r
                         */\r
                        static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
                                                                 void** const CurrConfigLoc) \r
                        static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
                                                                 void** const CurrConfigLoc)\r
                        {\r
                                uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;\r
 \r
                        static inline void USB_GetNextDescriptor(uint16_t* const BytesRem,\r
                                                                 void** const CurrConfigLoc)\r
                        {\r
                                uint16_t CurrDescriptorSize = DESCRIPTOR_CAST(*CurrConfigLoc, USB_Descriptor_Header_t).Size;\r
 \r