Выгрузка промежуточного драйвера
NDIS вызывает функцию MiniportDriverUnload для выгрузки промежуточного драйвера. Промежуточные драйверы должны выполнять те же операции в MiniportDriverUnload , что и другие драйверы минипорта. Помимо вызова функции NdisMDeregisterMiniportDriver , промежуточный драйвер также вызывает NdisDeregisterProtocolDriver. MiniportDriverUnload также должен выполнять все необходимые операции очистки, такие как освобождение ресурсов драйвера протокола.
Чтобы выполнить операции очистки перед удалением промежуточного драйвера, промежуточный драйвер может зарегистрировать функцию ProtocolUninstall . Например, для нижнего края протокола промежуточного драйвера может потребоваться функция ProtocolUninstall . Промежуточный драйвер может освободить свои пограничные ресурсы протокола в ProtocolUninstall , прежде чем NDIS вызовет свою функцию MiniportDriverUnload .
Драйвер miniport-intermediate вызывает NdisMDeregisterMiniportDriver дважды, один раз для интерфейса физического устройства и снова для интерфейса виртуального устройства.