Modificando uma lista de requisitos de recursos
Depois que o gerenciador de PnP tiver garantido que todos os drivers de um dispositivo conectado recentemente foram carregados, ele enviará a lista de requisitos de hardware do dispositivo para a pilha de driver do dispositivo.
À medida que a lista percorre a pilha, a estrutura chama cada função e filtra a função de retorno de chamada EvtDeviceFilterRemoveResourceRequirements do driver, passando a lista de requisitos de hardware como um argumento de entrada. Essa função de retorno de chamada pode remover recursos de hardware da lista de requisitos de hardware que o driver de barramento especificou, mas que o driver de função determina que não são necessários para o dispositivo operar.
Por exemplo, um driver de barramento PCI pode, de acordo com a especificação PCI, replicar um recurso de espaço de E/S no espaço de memória. Se o dispositivo puder operar sem usar o recurso de espaço de E/S, o driver de funções do dispositivo poderá remover o recurso de espaço de E/S da lista de requisitos de hardware.
Para remover itens da lista de requisitos, um driver pode fazer o seguinte:
- Chame os seguintes métodos para modificar as configurações lógicas na lista de requisitos de recursos:
- WdfIoResourceRequirementsListGetCount, para obter o número de configurações lógicas.
- WdfIoResourceRequirementsListGetIoResList, para obter acesso a uma configuração lógica.
- WdfIoResourceRequirementsListRemove e WdfIoResourceRequirementsListRemoveByIoResList, para remover uma configuração lógica.
- Chame os seguintes métodos para modificar os descritores de recursos em uma configuração lógica:
- WdfIoResourceListGetCount, para obter o número de descritores de recursos.
- WdfIoResourceListGetDescriptor, para obter acesso a um descritor de recursos.
- WdfIoResourceListRemove e WdfIoResourceListRemoveByDescriptor, para remover um descritor de recursos.
À medida que a lista faz backup da pilha de driver, a estrutura chama cada função e filtra a função de retorno de chamada EvtDeviceFilterAddResourceRequirements do driver, passando a lista de requisitos de hardware como um argumento de entrada. Essa função de retorno de chamada pode adicionar recursos de hardware adicionais que o driver de função requer para tornar o dispositivo operacional.
Para adicionar itens à lista de requisitos de hardware, um driver pode fazer o seguinte:
- Chame os seguintes métodos para modificar as configurações lógicas na lista de requisitos de recursos:
- WdfIoResourceRequirementsListGetCount, para obter o número de configurações lógicas.
- WdfIoResourceRequirementsListGetIoResList, para obter acesso a uma configuração lógica.
- WdfIoResourceListCreate, para criar uma nova configuração lógica.
- WdfIoResourceRequirementsListAppendIoResList ou WdfIoResourceRequirementsListInsertIoResList, para adicionar uma nova configuração lógica.
- Chame os seguintes métodos para modificar os descritores de recursos em uma configuração lógica:
- WdfIoResourceListGetCount, para obter o número de descritores de recursos.
- WdfIoResourceListGetDescriptor, para obter acesso a um descritor de recursos.
- WdfIoResourceListAppendDescriptor ou WdfIoResourceListInsertDescriptor, para adicionar um descritor de recursos.