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.
Cada driver de barramento deve criar um objeto de dispositivo de estrutura quando descobre que um dispositivo filho está conectado a um dispositivo pai. O dispositivo principal é normalmente um barramento, mas também pode ser um dispositivo multifuncional para o qual cada função requer um conjunto distinto de drivers (como uma placa de som que suporta áudio digital e MIDI). Os objetos de dispositivo que os drivers de barramento criam são chamados de objetos de dispositivo físico (DOP) porque cada um representa uma conexão real de uma peça de hardware (o filho) para outro (o pai).
O processo de identificação e relatório dos dispositivos conectados a um barramento é chamado de enumeração de barramento .
Se um driver de barramento executar a enumeração dinâmica de barramento , a sua função de retorno de chamada, EvtChildListCreateDevice, recebe um identificador para uma estrutura WDFDEVICE_INIT.
Se um driver de barramento executar enumeração de barramento estático, deverá chamar WdfPdoInitAllocate para obter um identificador para uma estrutura WDFDEVICE_INIT.
Para obter mais informações sobre enumeração de barramento, consulte a enumeração de dispositivos em um barramento.
Um motorista de autocarro pode chamar um conjunto de métodos de inicialização de objeto de dispositivo do framework , que armazenam informações na estrutura WDFDEVICE_INIT. Além disso, os drivers de barramento podem chamar os métodos de inicialização de PDO da estrutura de framework .
A criação de um objeto de dispositivo de estrutura para um dispositivo filho enumerado normalmente inclui as seguintes etapas:
A registar funções de retorno de chamada específicas do controlador de barramento.
A maioria dos motoristas de autocarro chama WdfPdoInitSetEventCallbacks, porque devem especificar as componentes de hardware necessárias pelo sistema que um dispositivo requer. Para obter mais informações sobre como especificar recursos de hardware, consulte Recursos de hardware para drivers Framework-Based. Funções adicionais de retorno de chamada podem ser registadas se o dispositivo e o driver suportarem a ejeção.
Relatando as cadeias de caracteres de identificação de dispositivos .
Os condutores de autocarros devem relatar as cadeias de caracteres de identificação do dispositivo chamando WdfPdoInitAssignDeviceID, WdfPdoInitAssignInstanceID, WdfPdoInitAddCompatibleIDe WdfPdoInitAddHardwareID para cada tipo de cadeia de caracteres suportada pelo dispositivo. Além disso, os motoristas de autocarros que usam a versão 1.9 ou posterior da estrutura podem chamar WdfPdoInitAssignContainerID.
Relatando se o motorista de autocarro pode suportar o dispositivo em modo bruto.
Se o controlador de barramento suporta o modo 'raw' para o dispositivo, deve chamar WdfPdoInitAssignRawDevice.
Fornecer texto exibível que descreve o dispositivo.
Os motoristas de autocarros chamam WdfPdoInitAddDeviceText e WdfPdoInitSetDefaultLocale para fornecer texto que descreve o dispositivo aos utilizadores, em vários idiomas.
Criando o objeto de dispositivo.
A etapa final na criação de um objeto de dispositivo é chamar WdfDeviceCreate.
Se o driver encontrar um erro ao inicializar a estrutura de WDFDEVICE_INIT que ele obteve de WdfPdoInitAllocate, o driver deve chamar WdfDeviceInitFree em vez de WdfDeviceCreate.
Depois que o driver de barramento cria o objeto de dispositivo, ele normalmente chama WdfDeviceSetPnpCapabilities e WdfDeviceSetPowerCapabilities para relatar os recursos Plug and Play e de energia do dispositivo.
Cada controlador de barramento também é o driver de função para o adaptador de barramento. Portanto, o driver também deve fornecer uma função de retorno de chamada EvtDriverDeviceAdd. Essa função de retorno de chamada cria um objeto de dispositivo funcional (FDO) para cada adaptador de barramento no sistema. Para obter mais informações sobre como criar FDOs, consulte Criando objetos de dispositivo em um driver de função.