Nota
O acesso a esta página requer autorização. Podes tentar iniciar sessão ou mudar de diretório.
O acesso a esta página requer autorização. Podes tentar mudar de diretório.
Se o barramento subjacente de um dispositivo suportar um padrão de barramento multifuncional, como PC Card, o fornecedor de dispositivo multifuncional numa plataforma baseada em NT pode usar o driver de barramento multifuncional fornecido pelo sistema (mf.sys) para suportar o dispositivo.
O driver de barramento mf.sys lida com a enumeração PnP das funções do dispositivo e arbitra recursos, como portas de E/S e IRQs, entre as funções. O driver mf.sys lida com o gerenciamento de energia para as funções filhas, gerindo a energia do dispositivo multifuncional pai.
Para usar mf.sys, um dispositivo multifuncional deve atender aos seguintes requisitos:
O barramento subjacente do dispositivo deve ter um padrão multifuncional.
Os DEVICE_CAPABILITIES das funções filho devem ser idênticos e devem corresponder aos do dispositivo pai. Quando questionado sobre as capacidades do dispositivo de uma função de criança (IRP_MN_QUERY_CAPABILITIES), o driver mf.sys reporta as capacidades do dispositivo pai.
O driver para o bus no qual o dispositivo multifuncional se encontra, como pcmcia.sys, deve lidar com quaisquer pedidos IRP_MN_READ_CONFIG e IRP_MN_WRITE_CONFIG. O motorista mf.sys apenas passa esses IRPs para o motorista de ônibus pai.
As funções devem ser independentes: não podem ter dependências de ordem inicial; os requisitos de recursos para uma função não podem ser expressos em termos dos recursos de outra função (por exemplo, a função1 usa a porta de E/S X e a função2 usa a porta X + 200); e cada função deve poder funcionar como um dispositivo separado, mesmo que seja assistida pelo(s) mesmo(s) condutor(es) que outra função.
Para usar mf.sys, um fornecedor fornece um INF para o dispositivo multifuncional que especifica mf.sys como o driver para o dispositivo. Se um dispositivo estiver completamente e precisamente em conformidade com o padrão multifuncional para o seu barramento subjacente, o fornecedor desse dispositivo pode usar o mf.inf fornecido pelo sistema. Se um dispositivo não estiver completamente em conformidade com o padrão, o fornecedor deve fornecer um INF personalizado.
Em ambos os casos, o fornecedor também fornece drivers e arquivos INF para as funções individuais no dispositivo.
O seguinte esqueleto de um INF multifuncional personalizado ilustra a sintaxe necessária para especificar mf.sys como o driver para um dispositivo multifuncional:
[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]
; ...
Considere uma combinação de dispositivo LAN/modem PC Card. Sem qualquer suporte multifuncional especial, tal dispositivo pode ser identificado pelo controlador de barramento PCMCIA como um único dispositivo de modem. Com o suporte adicional de um INF multifuncional e do driver de barramento mf.sys, ambas as funções do dispositivo são enumeradas. A figura a seguir mostra as camadas de dispositivos de exemplo que podem ser criadas para um cartão PC combinado incluindo o suporte multifuncional necessário.
Como mostrado na figura anterior, o driver do barramento em que reside o dispositivo multifuncional enumera um dispositivo. O ID de hardware no arquivo INF multifuncional faz com que o gerenciador PnP carregue o driver de barramento mf.sys como o driver de função para o dispositivo. O driver de barramento mf.sys enumera dois dispositivos secundários, um dispositivo LAN e um modem.
O gerenciador PnP trata cada dispositivo filho como um dispositivo típico, localizando arquivos INF, carregando os drivers apropriados, chamando suas rotinas AddDevice e assim por diante até que uma pilha de dispositivos seja criada para cada dispositivo. O condutor do autocarro mf.sys arbitra os recursos para os dispositivos filho e gere quaisquer outros aspetos multifuncionais do dispositivo. O fornecedor da placa multifuncional fornece drivers de função e INFs para as múltiplas funções (LAN e modem), como se fossem dispositivos separados.
A ilustração centra-se nos controladores de função e controladores de barramento pai e seus FDOs e PDOs associados. Todos os drivers de filtro (e DOs de filtro) são omitidos por simplicidade.