Inicialización de un controlador de Miniport-Intermediate
Un controlador intermedio de miniporte combina un controlador de minipuerto para un dispositivo virtual, un controlador de protocolo y un controlador de minipuerto para un dispositivo físico. Un controlador intermedio de miniporte funciona de forma similar a un controlador intermedio en capas sobre un controlador de minipuerto. Este controlador permite que un controlador intermedio se comunique directamente con un controlador de miniporte subyacente sin incurrir en las penalizaciones de rendimiento que podrían dar lugar a dos controladores independientes.
Para registrar su controlador de minipuerto físico, un controlador intermedio de miniport llama a la función NdisMRegisterMiniportDriver con los parámetros adecuados igual que para cualquier controlador de minipuerto. Para registrar su minipuerto virtual, el controlador llama de nuevo a NdisMRegisterMiniportDriver , pero con la marca NDIS_INTERMEDIATE_DRIVER establecida en la estructura en MiniportDriverCharacteristics .
Para cada instancia de dispositivo virtual o físico de un controlador intermedio de miniporte, si la clave del Registro IMMiniport está establecida en DWORD:0x0000001, NDIS llama a la función MiniportInitializeEx que el controlador registró para el dispositivo virtual. De lo contrario, NDIS llama a la función MiniportInitializeEx del controlador que el controlador registró para el dispositivo físico.