Dose Root Bus support multifunction bus standard?

sheng 20 Reputation points
2023-07-19T03:58:14.96+00:00

Hi Microsoft team,

I want to implement a multifunction device driver and want to use mf.sys, but my underlying bus was created by root bus, I want to use the mf.sys driver, but I don't know if root bus supports multifunction bus standard, like pcmia bus.

I refer

https://learn.microsoft.com/en-us/windows-hardware/drivers/multifunction/using-the-system-supplied-multifunction-bus-driver

BR

Long

Windows for business | Windows Client for IT Pros | Devices and deployment | Other
0 comments No comments
{count} votes

2 answers

Sort by: Most helpful
  1. Limitless Technology 44,766 Reputation points
    2023-07-19T12:21:23.3266667+00:00

    Hello Sheng,

    Thank you for your question and for reaching out with your question today.

    The System-Supplied Multifunction Bus Driver (mf.sys) is a Windows kernel-mode driver that provides support for multifunction devices in a system. It allows multiple functions of a single device to share the same resources and communicate with each other efficiently. The mf.sys driver is designed to work with the Plug and Play manager to handle device enumeration and resource allocation for multifunction devices.

    The root bus, also known as the "parent bus," is the bus that directly connects to the CPU and serves as the starting point for all other buses in the system. It provides the basic communication infrastructure for all devices in the system. In most systems, the root bus is either a PCI bus or an ACPI bus.

    The mf.sys driver is designed to work with PCI-based multifunction devices that follow the PCI Multifunction Specification. The PCI Multifunction Specification defines a standard way to represent and configure multifunction devices on a PCI bus. It allows multiple functions of a single device to share the same PCI device ID and resources, which helps to optimize system resource usage.

    Unfortunately, the documentation you referred to does not explicitly mention support for non-PCI-based root buses, such as PCMCIA. The PCI bus is the most common bus type for multifunction devices in modern computers, and the mf.sys driver is primarily intended for use with PCI multifunction devices.

    If your underlying bus was created by a root bus other than PCI and does not fully support the PCI Multifunction Specification, it may not be compatible with the mf.sys driver. In such cases, you might need to implement a custom multifunction bus driver specifically tailored to your root bus architecture and the multifunction devices connected to it.

    Creating a custom multifunction bus driver can be a complex task, and it requires a deep understanding of Windows kernel-mode driver development and the specific bus architecture you are working with. Before embarking on this endeavor, you should carefully evaluate the feasibility of using the mf.sys driver with your current bus architecture or consider other alternatives based on your project requirements.

    If you need to support multifunction devices on a non-PCI-based root bus and are unsure about how to proceed, I would recommend consulting with experienced Windows kernel-mode driver developers or Microsoft support for guidance tailored to your specific use case and system configuration.

    I used AI provided by ChatGPT to formulate part of this response. I have verified that the information is accurate before sharing it with you.

    If the reply was helpful, please don’t forget to upvote or accept as answer.


  2. sheng 20 Reputation points
    2023-07-20T01:54:46.9566667+00:00

    Hi

    Thank you for your answer, My design reference

    https://learn.microsoft.com/en-us/windows-hardware/drivers/multifunction/using-the-system-supplied-multifunction-bus-driver

    1. My design framework is a virtual multi-function device (multi-function device bus driver) from the root bus, and there are many peripherals on the actual hardware device (LED, motor, Various kinds of Sensor...). I need to get these peripherals, attached to my simulated virtual multi-function bus. This simulates a multifunctional device. Is this feasible or reasonable?
    2. Regarding Microsoft's technical support, how to seek Microsoft's official support? In addition to the forum here, what are the channels? Paid and free? Or there is a special docking enterprise support cooperation?

    BR

    Sheng


Your answer

Answers can be marked as Accepted Answers by the question author, which helps users to know the answer solved the author's problem.