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


Состояния и операции адаптера Минипорта

Для каждого управляемого адаптера драйвер минипорта NDIS 6.0 или более поздней версии должен поддерживать следующий набор операционных состояний:

остановлено
Состояние "Остановлено" — это начальное состояние всех адаптеров. Если адаптер находится в состоянии "Остановлено", NDIS может вызывать функцию MiniportInitializeEx для инициализации адаптера.

завершение работы
В состоянии выключения система должна полностью выключиться и перезапуститься, прежде чем сможет снова использовать адаптер.

инициализация
В состоянии Инициализации минипорт-драйвер завершает все операции, необходимые для инициализации данного адаптера.

приостановлено
В приостановленном состоянии адаптер не отображает полученные сетевые данные и не принимает запросы на отправку.

Перезапуск
В состоянии перезапуска, минипорт-драйвер выполняет все необходимые операции для перезапуска отправки и получения данных для адаптера.

запуск
В рабочем состоянии минипорт-драйвер выполняет обработку отправки и получения данных для адаптера.

приостановка
В состоянии приостановки драйвер минипорта завершает все операции, необходимые для остановки операций отправки и получения для адаптера.

В следующей таблице заголовки — это состояния адаптера. Основные события перечислены в первом столбце. Остальные записи в таблице указывают следующее состояние, в которое переходит адаптер после возникновения события в текущем состоянии. Пустые записи представляют недопустимые сочетания событий и состояний.

Событие \ состояние Остановился Выключение Инициализация Приостановлено Перезагрузка Бег Приостановка

MiniportInitializeEx

Инициализация

Инициализация завершена

Приостановлено

MiniportShutdownEx

Выключение

Остановка

Выключение

Выключение

MiniportHaltEx

Остановился

MiniportRestart

Перезагрузка

Перезагрузка завершена

Бег

MiniportPause

Приостановка

Приостановка завершена

Приостановлена

Сбой инициализации

Остановился

Сбой перезапуска

Пауза

Операции отправки и получения

Бег

Приостановка

Запросы OID

Приостановлено

Перезагрузка

Бег

Приостановка

Примечание События, перечисленные в предыдущей таблице, являются основными событиями адаптера NDIS 6.0 или более поздней версии.

Примечание Операция сброса не влияет на состояния работы минипорта. Состояние адаптера может измениться во время выполнения операции сброса. Например, NDIS может вызывать обработчик приостановки у драйвера, когда выполняется операция сброса. В этом случае драйвер может завершить операцию сброса или приостановки в любом порядке, соблюдая стандартные требования для каждой операции. Для операции сброса драйвер может завершить передачу пакетов запросов или сохранить их в очереди и завершить их позже. Однако следует отметить, что накладывающийся драйвер не может завершить операцию паузы, пока пакеты передачи находятся в ожидании.

Основные события драйвера минипорта определяются следующим образом:

MiniportInitializeEx
NDIS вызвал функцию драйвера MiniportInitializeEx для инициализации адаптера. Дополнительные сведения об инициализации минипорт-адаптера см. в Инициализация минипорт-адаптера.

инициализация завершена
После успешного возврата MiniportInitializeEx операция инициализации завершена, а адаптер находится в состоянии "Приостановлено".

MiniportShutdownEx
NDIS вызвал функцию MiniportShutdownEx драйвера для завершения работы адаптера. Дополнительные сведения см. в разделе Завершение работы минипорта адаптера.

MiniportHaltEx
NDIS вызвал функцию драйвера MiniportHaltEx для остановки работы адаптера. Дополнительные сведения см. в разделе Остановка адаптера Минипорта.

MiniportRestart
NDIS вызывает функцию MiniportRestart драйвера для перезапуска приостановленного адаптера. Так как адаптер находится в состоянии "Приостановлено" после инициализации, это событие также требуется для запуска адаптера после завершения инициализации адаптера. Дополнительные сведения см. в разделе Запуск адаптера.

перезагрузка завершена
После того как драйвер будет готов к обработке операций отправки и получения, операция перезапуска завершена, а адаптер находится в состоянии "Выполнение".

MiniportPause
NDIS вызвал функцию драйвера MiniportPause для приостановки адаптера. Дополнительные сведения см. в разделе Приостановка адаптера.

Приостановка завершена
После того как драйвер завершит все операции, необходимые для остановки операций отправки и получения, операция приостановки будет завершена, и адаптер будет находиться в состоянии "Пауза".

Примечание Драйвер должен ждать, пока NDIS не вернет все свои невыполненные индикации приема до операции завершения приостановки.

сбой инициализации
Если NDIS вызывает функцию драйвера MiniportInitializeEx, а попытка инициализации завершается ошибкой, адаптер возвращается в состояние "Остановлено".

сбой перезагрузки
Если NDIS вызывает функцию MiniportRestart драйвера, и попытка перезагрузки завершается ошибкой, адаптер остается в приостановленном состоянии.

операции отправки и получения
Драйвер должен обрабатывать операции отправки и получения в режимах выполнения и приостановки. Дополнительные сведения об операциях отправки и получения см. в разделе «Операции отправки и получения драйвера Miniport».

запросы OID
Драйвер должен обрабатывать запросы OID в состояниях выполнения, перезапуска, приостановки и приостановленного. Дополнительные сведения о запросах OID см. в запросах OID для адаптера.

остановка минипорт-адаптера

Инициализация адаптера минипорта

завершение работы адаптера Miniport

Операции отправки и получения минипорт-драйвера

Приостановка адаптера

запуск адаптера