Поделиться через


Изменение списка требований к ресурсам

После того как диспетчер PnP убедился, что все драйверы подключенного устройства загружены, он отправляет список требований к оборудованию устройства в стек драйверов устройства.

По мере перемещения списка вниз по стеку платформа вызывает каждую функцию и фильтрует функцию обратного вызова EvtDeviceFilterRemoveResourceRequirements , передавая список требований к оборудованию в качестве входного аргумента. Эта функция обратного вызова может удалять аппаратные ресурсы из списка требований к оборудованию, указанного драйвером шины, но который, по определению драйвера функции, не требуется для работы устройства.

Например, драйвер шины PCI может в соответствии со спецификацией PCI реплицировать ресурс пространства ввода-вывода в памяти. Если устройство может работать без использования ресурса пространства ввода-вывода, драйвер функции устройства может удалить ресурс пространства ввода-вывода из списка требований к оборудованию.

Чтобы удалить элементы из списка требований, драйвер может сделать следующее:

По мере перемещения списка в резервную копию стека драйверов платформа вызывает каждую функцию и фильтрует функцию обратного вызова EvtDeviceFilterAddResourceRequirements , передавая список требований к оборудованию в качестве входного аргумента. Эта функция обратного вызова может добавлять дополнительные аппаратные ресурсы, необходимые драйверу функции для обеспечения работоспособности устройства.

Чтобы добавить элементы в список требований к оборудованию, драйвер может сделать следующее: