Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
No cenário a seguir, o nó do dispositivo inclui um driver de barramento KMDF e uma ou mais funções KMDF ou drivers de filtro que suportam um dispositivo PnP.
Quando um utilizador conecta o dispositivo ao barramento enquanto o sistema está em execução, o driver de barramento do dispositivo e o quadro executam as seguintes tarefas:
O controlador do dispositivo deteta o dispositivo e chama WdfChildListAddOrUpdateChildDescriptionAsPresent. (Este processo é conhecido como "enumeração dinâmica.")
A estrutura chama a função de retorno de chamada EvtChildListCreateDevice do driver de barramento, para que o driver de barramento possa chamar WdfDeviceCreate para criar um objeto de dispositivo da estrutura para o dispositivo físico (um DOP).
O framework invoca as funções de retorno de chamada EvtDeviceResourcesQuery e EvtDeviceResourceRequirementsQuery do driver de barramento para identificar os recursos de hardware do sistema que o dispositivo requer.
Para obter mais informações sobre a sequência de inicialização para um controlador de barramento KMDF, consulte Power-Up Sequence for a Bus Driver.
Em seguida, o gestor PnP determina quais controladores adicionais (controladores de função e controladores de filtro) o dispositivo requer. Se esses drivers ainda não estiverem carregados, o gerenciador PnP os carregará e chamará suas rotinas DriverEntry . Para cada função ou driver de filtro, as seguintes ações ocorrem:
A estrutura chama a função de retorno de chamada EvtDriverDeviceAdd de cada driver adicional para que o driver possa chamar WdfDeviceCreate para criar um objeto de dispositivo do framework que representa o dispositivo associado ao driver. Os drivers de função criam um objeto de dispositivo funcional (FDO) e os drivers de filtro criam um objeto de dispositivo de filtro (Filter DO).
A estrutura chama a função de retorno de chamada EvtDeviceFilterRemoveResourceRequirements de cada função e filtro do driver e, em seguida, a função de retorno de chamada EvtDeviceFilterAddResourceRequirements de cada driver. Imediatamente antes do dispositivo ser iniciado, a estrutura chama a função callback EvtDeviceRemoveAddedResources. Essas três funções de retorno de chamada permitem que os drivers de filtro e de função modifiquem a lista de recursos de hardware que o dispositivo requer, antes que o gestor PnP atribua recursos ao dispositivo. Para obter mais informações, consulte Recursos de hardware para drivers de Framework-Based
A estrutura garante que o dispositivo atingiu seu estado de energia de trabalho (D0).
Para cada função e driver de filtro que suporta o dispositivo, o framework faz o seguinte, em sequência, um driver de cada vez, começando com o driver mais baixo na pilha de drivers:
- O framework chama a função de retorno de chamada EvtDevicePrepareHardware do driver (se existir) e passa a lista de recursos de hardware que o gestor PnP atribuiu ao dispositivo.
- A framework chama a função de callback EvtDeviceD0Entry do driver (se existir).
- A estrutura chama a função callback EvtInterruptEnable do driver (se existir) para cada interrupção e, em seguida, chama a função callback EvtDeviceD0EntryPostInterruptsEnabled do driver (se existir), para que o driver possa habilitar interrupções de dispositivo.
- Se o hardware e o driver suportarem DMA, o framework chamará as funções callback do driver EvtDmaEnablerFill, EvtDmaEnablerEnable e EvtDmaEnablerSelfManagedIoStart (se existirem) para cada canal DMA criado.
- A framework invoca a função de callback EvtChildListScanForChildren do driver (se existir).
- A estrutura inicia todas as filas de E/S geridas por energia do dispositivo.
- Se o controlador estiver a utilizar E/S autogerida, a estrutura chamará a função de retorno de chamada EvtDeviceSelfManagedIoInit do controlador.
Para obter mais informações sobre a sequência de inicialização para drivers de função ou filtro KMDF, Power-Up Sequência para um driver de função ou filtro.