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


Создание драйверов мини-портов KMDF

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

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

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

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

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

  • Вызовите WdfDriverMiniportUnload , когда драйвер порта сообщает драйверу мини-порта о том, что он будет выгружен.

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

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