Примечание
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Для поддержки изменения назначений прерываний для MSI-X или удаления ресурсов прерываний сообщений минипорт-драйвер должен установить функцию фильтра требований к ресурсам. Процесс предварительной регистрации происходит перед вызовом функции NDIS MiniportInitializeEx.
Чтобы установить функцию фильтра требований к ресурсам, драйвер минипорта должен предоставить функцию MiniportSetOptions. Когда драйвер минипорта вызывает функцию NdisMRegisterMiniportDriver из подпрограммы DriverEntry, драйвер передает точку входа для MiniportSetOptions в структуре NDIS_MINIPORT_DRIVER_CHARACTERISTICS. NDIS вызывает функцию MiniportSetOptions в контексте NdisMRegisterMiniportDriver.
Из MiniportSetOptionsдрайвер минипорта вызывает функцию NdisSetOptionalHandlers и задает структуру NDIS_MINIPORT_PNP_CHARACTERISTICS. Эта структура определяет точки входа для MiniportAddDevice, MiniportRemoveDevice, MiniportStartDeviceи функции MiniportFilterResourceRequirements.
Когда NDIS получает запрос на добавление устройства от диспетчера Plug and Play (PnP), NDIS вызывает функцию минипорта MiniportAddDevice. Дескриптор, который NDIS передает в MiniportAddDevice в параметре MiniportAdapterHandle, является тем самым дескриптором, который NDIS позже передает в функцию MiniportInitializeEx.
В MiniportAddDeviceдрайвер инициализирует структуру NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES и передаёт её в функцию NdisMSetMiniportAttributes. Структура NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES содержит элемент MiniportAddDeviceContext, представляющий собой идентификатор области контекста, выделенной драйвером для устройства. NDIS позже предоставляет этот дескриптор контекста функциям MiniportRemoveDevice , MiniportFilterResourceRequirements , MiniportStartDevice и MiniportInitializeEx . Для MiniportInitializeExдескриптор контекста передается в элемент MiniportAddDeviceContext структуры NDIS_MINIPORT_INIT_PARAMETERS, на которую ссылается параметр MiniportInitParameters.
После того как NDIS вызывает MiniportAddDevice и MiniportAddDevice возвращает NDIS_STATUS_SUCCESS, NDIS вызывает функцию MiniportFilterResourceRequirements каждый раз, когда получает пакет запросов ввода-вывода IRP_MN_FILTER_RESOURCE_REQUIREMENTS (IRP). MiniportFilterResourceRequirements может изменить сходство прерываний для каждого сообщения MSI-X, добавить ресурсы прерывания сообщения или удалить ресурсы прерывания сообщения, если драйвер зарегистрирует прерывания на основе строк в функции MiniportInitializeEx. Дополнительные сведения о создании политики сходства прерываний см. в разделе MSI-X Фильтрация ресурсов.
Когда NDIS получает от диспетчера PnP запрос на удаление устройства, он вызывает функцию минипорта MiniportRemoveDevice. Функция MiniportRemoveDevice должна отменить операции, выполняемые функцией MiniportAddDevice.