def METHOD_NAME(self) -> Iterator[Tuple]:
    kernel = self.context.modules[self.config["kernel"]]
    # Scan the Layer for drivers
    for driver in driverscan.DriverScan.scan_drivers(
        self.context, kernel.layer_name, kernel.symbol_table_name
    ):
        try:
            try:
                driver_name = driver.get_driver_name()
            except (ValueError, exceptions.InvalidAddressException):
                vollog.log(
                    constants.LOGLEVEL_VVVV,
                    f"Failed to get Driver name : {driver.vol.offset:x}",
                )
                driver_name = renderers.UnparsableValue()
            yield (
                0,
                (
                    format_hints.Hex(driver.vol.offset),
                    "DRV",
                    driver_name,
                    renderers.NotApplicableValue(),
                    renderers.NotApplicableValue(),
                    renderers.NotApplicableValue(),
                ),
            )
            # Scan to get the device information of driver.
            for device in driver.get_devices():
                try:
                    device_name = device.get_device_name()
                except (ValueError, exceptions.InvalidAddressException):
                    vollog.log(
                        constants.LOGLEVEL_VVVV,
                        f"Failed to get Device name : {device.vol.offset:x}",
                    )
                    device_name = renderers.UnparsableValue()
                device_type = DEVICE_CODES.get(device.DeviceType, "UNKNOWN")
                yield (
                    1,
                    (
                        format_hints.Hex(driver.vol.offset),
                        "DEV",
                        driver_name,
                        device_name,
                        renderers.NotApplicableValue(),
                        device_type,
                    ),
                )
                # Scan to get the attached devices information of device.
                for level, attached_device in enumerate(
                    device.get_attached_devices(), start=2
                ):
                    try:
                        device_name = attached_device.get_device_name()
                    except (ValueError, exceptions.InvalidAddressException):
                        vollog.log(
                            constants.LOGLEVEL_VVVV,
                            f"Failed to get Attached Device Name: {attached_device.vol.offset:x}",
                        )
                        device_name = renderers.UnparsableValue()
                    attached_device_driver_name = (
                        attached_device.DriverObject.DriverName.get_string()
                    )
                    attached_device_type = DEVICE_CODES.get(
                        attached_device.DeviceType, "UNKNOWN"
                    )
                    yield (
                        level,
                        (
                            format_hints.Hex(driver.vol.offset),
                            "ATT",
                            driver_name,
                            device_name,
                            attached_device_driver_name,
                            attached_device_type,
                        ),
                    )
        except exceptions.InvalidAddressException:
            vollog.log(
                constants.LOGLEVEL_VVVV,
                f"Invalid address identified in drivers and devices: {driver.vol.offset:x}",
            )
            continue