Создание драйверов минипорта КМДФ

Некоторые драйверы минипорта могут использовать платформу Kernel-Mode Driver Framework, если архитектура порта/минипорта позволяет драйверу минипорта взаимодействовать с другими драйверами с помощью интерфейсов WDM или Framework. Например, драйверы минипорта NDIS с нижним ребром WDM могут использовать платформу для реализации нижнего периметра.

Если вы хотите, чтобы драйвер минипорта использовал платформу, драйвер должен выполнить следующие действия:

  • Установите флаг вдфдриверинитнодиспатчоверриде в элементе дриверинитфлагс структуры WDF_DRIVER_CONFIG драйвера перед вызовом вдфдриверкреате. Установка этого флага позволяет использовать драйвер порта вместо платформы для перехвата пакетов запросов ввода-вывода (IRP), направленных диспетчером ввода-вывода в драйвер.

  • Вызовите вдфдевицеминипорткреате вместо вдфдевицекреате , чтобы создать объекты устройств платформы для устройств драйвера минипорта. Драйвер минипорта должен вызвать вдфдевицеминипорткреате , когда драйвер порта сообщает, что устройство доступно.

  • Вызовите вдфобжектделете , чтобы удалить объект устройства, создаваемый вдфдевицеминипорткреате , когда драйвер определит, что устройство было удалено. (Поскольку драйвер установил флаг вдфдриверинитнодиспатчоверриде , платформа не может определить, когда устройство удалено и не может удалить объект устройства.)

  • Вызовите вдфдриверминипортунлоад , когда драйвер порта информирует драйвер минипорта о необходимости выгрузки.

Драйвер минипорта может использовать платформу только в том случае, если базовое устройство поддерживает Plug and Play (PnP). Драйверы минипорта не могут использовать управляющие объекты-устройства платформы.

Ограничения применяются к объектам устройства, создаваемым методом вдфдевицеминипорткреате . Список этих ограничений см. в разделе вдфдевицеминипорткреате.