Are internal components on the motherboard connected with each other and to the CPU using PCIe bus?
Microsoft documents on driver mentioned: function driver is the driver that communicates directly with the device. This statement is true for a device that connects directly to the Peripheral Component Interconnect (PCI) bus. The function driver for a PCI device obtains addresses that are mapped to port and memory resources on the device. The function driver communicates directly with the device by writing to those addresses.
In many cases, a device doesn't connect directly to the PCI bus. Instead, the device connects to a host bus adapter that is connected to the PCI bus. For example, a USB toaster connects to a host bus adapter, called a USB host controller. That controller is connected to the PCI bus. The USB toaster has a function driver and the USB host controller also has a function driver.
The function driver for the toaster communicates indirectly with the toaster by sending a request to the function driver for the USB host controller. The function driver for the USB host controller then communicates directly with the USB host controller hardware, which communicates with the toaster."
Does that mean any device that requires driver to work must be connected to PCIe bus or hook up with a host controller connected to PCIe? I'm just doing a research on windows device driver