Udostępnij przez


Używanie sterownika magistrali wielofunkcyjnej System-Supplied

Jeśli podstawowa magistrala urządzenia obsługuje standard magistrali wielofunkcyjnej, taki jak KARTA PC, dostawca urządzenia wielofunkcyjnego na platformie opartej na NT może używać dostarczonego przez system sterownika magistrali wielofunkcyjnej (mf.sys) do obsługi urządzenia.

Sterownik magistrali mf.sys obsługuje wyliczanie PnP funkcji urządzenia i arbitruje zasoby, takie jak porty we/wy i IRQ, między funkcjami. Sterownik mf.sys zarządza energią funkcji podrzędnych poprzez zarządzanie energią nadrzędnego urządzenia wielofunkcyjnego.

Aby korzystać z mf.sys, urządzenie wielofunkcyjne musi spełniać następujące wymagania:

  • Podstawowa magistrala urządzenia musi mieć standard funkcji wielofunkcyjnych.

  • DEVICE_CAPABILITIES funkcji podrzędnych muszą być identyczne i muszą być zgodne z tymi z urządzenia nadrzędnego. Podczas zapytań o możliwości działania funkcji podrzędnej (IRP_MN_QUERY_CAPABILITIES), sterownik mf.sys raportuje możliwości urządzenia nadrzędnego.

  • Sterownik magistrali, na której znajduje się urządzenie wielofunkcyjne, na przykład pcmcia.sys, musi obsługiwać wszelkie żądania IRP_MN_READ_CONFIG i IRP_MN_WRITE_CONFIG. Sterownik mf.sys po prostu przekazuje te IRP do nadrzędnego sterownika magistrali.

  • Funkcje muszą być niezależne: nie mogą mieć zależności kolejności uruchamiania; wymagania dotyczące zasobów dla jednej funkcji nie mogą być wyrażone w odniesieniu do zasobów innej funkcji (na przykład funkcja 1 używa portu we/wy X i funkcji2 używa portów X + 200); każda funkcja musi być w stanie działać jako oddzielne urządzenie, nawet jeśli jest obsługiwana przez te same sterowniki co inna funkcja.

Aby użyć mf.sys, dostawca dostarcza INF dla urządzenia wielofunkcyjnego, które określa mf.sys jako sterownik urządzenia. Jeśli urządzenie jest całkowicie i dokładnie zgodne ze standardem wielofunkcyjnym dla jego magistrali bazowej, dostawca takiego urządzenia może użyć dostarczonego przez system pliku mf.inf. Jeśli urządzenie nie spełnia całkowicie standardu, dostawca musi dostarczyć niestandardowy INF.

W obu przypadkach dostawca dostarcza również sterowniki i pliki INF dla poszczególnych funkcji na urządzeniu.

Poniższy szkielet niestandardowego pliku INF dla urządzenia wielofunkcyjnego ilustruje wymaganą składnię do określenia mf.sys jako sterownika urządzenia wielofunkcyjnego.

[Version]
; ...
Class = Multifunction   ; the system-defined class for MF devices
ClassGUID  = {4d36e971-e325-11ce-bfc1-08002be10318} ; GUID for MF
; ...
; ...
[ControlFlags]
ExcludeFromSelect = *   ; don't include PnP devices in a displayed list of
                        ; devices available for manual installation
[Manufacturer]
; ...
; ...
[ModelsSection.NTamd64]         ; models section
; ...
; ...
[DDInstall.NT]          ; install section
Include = mf.inf        ; specify that this device requires mf.sys
Needs = MFINSTALL.mf
; ...

[DDinstall.NT.Services]
Include = mf.inf
Needs = MFINSTALL.mf.Services

[DDInstall.NT.HW]
AddReg=DDInstall.RegHW

[DDInstall.RegHW]
; put entries with child function hardware IDs here
; ...

; put override sections here...
; ...

[Strings]
; ...

Rozważ połączenie urządzenia LAN/modemu PC Card. Bez żadnej specjalnej obsługi funkcji wielofunkcyjnych, takie urządzenie może być zgłaszane przez sterownik magistrali PCMCIA jako pojedyncze urządzenie modemowe. Dzięki dodatkowej obsłudze funkcji wielofunkcyjnych INF i sterownika magistrali mf.sys oba funkcje urządzenia są wyliczane. Na poniższej ilustracji przedstawiono przykładowe stosy urządzeń, które można utworzyć dla takiej karty PC Card kombi z wymaganą obsługą funkcji wielofunkcyjnych.

diagram ilustrujący stosy urządzeń dla urządzenia wielofunkcyjnego wyliczonego przez mf.sys.

Jak pokazano na powyższej ilustracji, sterownik magistrali, na której znajduje się urządzenie wielofunkcyjne, wylicza jedno urządzenie. Identyfikator sprzętu w wielofunkcyjnym pliku INF powoduje, że menedżer PnP załaduje sterownik magistrali mf.sys jako sterownik funkcji dla urządzenia. Kierowca autobusu mf.sys wylicza dwa urządzenia podrzędne, urządzenie LAN i modem.

Menedżer PnP traktuje każde urządzenie podrzędne jak typowe urządzenie, lokalizuje pliki INF, ładuje odpowiednie sterowniki, wywołuje ich procedury AddDevice i tak dalej, aż do utworzenia stosu urządzeń dla każdego z nich. Sterownik magistrali mf.sys arbitruje zasoby dla urządzeń podrzędnych i zarządza wszelkimi innymi aspektami funkcji urządzenia. Dostawca karty wielofunkcyjnej udostępnia sterowniki funkcji i funkcje INF dla wielu funkcji (LAN i modem), tak jak gdyby były oddzielnymi urządzeniami.

Ilustracja koncentruje się na sterownikach funkcji i sterownikach magistrali nadrzędnej oraz powiązanych z nimi obiektach FDO i PDO. Wszystkie sterowniki filtrów (i DO filtru) są pomijane dla uproszczenia.