Состояния и операции адаптера miniport
Для каждого управляемого адаптера драйвер NDIS 6.0 или более поздней версии должен поддерживать следующий набор рабочих состояний:
Остановился
Состояние Остановлено — это начальное состояние всех адаптеров. Если адаптер находится в состоянии Остановлено, NDIS может вызвать функцию MiniportInitializeEx драйвера для инициализации адаптера.
Завершить работу
В состоянии Завершение работы должно произойти завершение работы и перезагрузка системы, прежде чем система сможет снова использовать адаптер.
Инициализация
В состоянии Инициализация драйвер мини-порта завершает все операции, необходимые для инициализации адаптера.
Пауза
В состоянии Приостановлено адаптер не указывает на полученные сетевые данные и не принимает запросы на отправку.
Перезагрузки
В состоянии Перезапуск драйвер мини-порта завершает все операции, необходимые для перезапуска операций отправки и получения для адаптера.
Запущена
В состоянии Выполняется драйвер мини-порта выполняет обработку отправки и получения адаптера.
Приостановка
В состоянии Приостановка драйвер минипорта завершает все операции, необходимые для остановки операций отправки и получения для адаптера.
В следующей таблице заголовки являются состояниями адаптера. Основные события перечислены в первом столбце. Остальные записи в таблице указывают следующее состояние, которое адаптер вводит после возникновения события в состоянии . Пустые записи представляют недопустимые сочетания событий и состояний.
Событие \ Состояние | Остановился | Завершить работу | Инициализация | Пауза | перезапуск; | Запущен | Приостановка |
---|---|---|---|---|---|---|---|
Инициализация |
|||||||
Инициализация завершена |
Пауза |
||||||
Завершить работу |
Завершить работу |
Завершить работу |
Завершить работу |
||||
Остановился |
|||||||
перезапуск; |
|||||||
Перезапуск завершен |
Запущен |
||||||
Приостановка |
|||||||
Приостановка завершена |
Пауза |
||||||
Сбой инициализации |
Остановился |
||||||
Сбой перезапуска |
Пауза |
||||||
Операции отправки и получения |
Запущен |
Приостановка |
|||||
Запросы OID |
Пауза |
перезапуск; |
Запущен |
Приостановка |
Примечание События, перечисленные в предыдущей таблице, являются основными событиями для адаптера NDIS 6.0 или более поздней версии.
Примечание Операция сброса не влияет на рабочие состояния адаптера мини-порта. Состояние адаптера может измениться во время выполнения операции сброса. Например, NDIS может вызывать обработчик приостановки драйвера при выполнении операции сброса. В этом случае драйвер может выполнить операцию сброса или приостановки в любом порядке, следуя обычным требованиям для каждой операции. Для операции сброса драйвер может не передать пакеты запросов или оставить их в очереди и завершить их позже. Однако следует отметить, что драйвер с превышением состояния не может завершить операцию приостановки, пока его пакеты передачи находятся в состоянии ожидания.
Основные события драйвера минипорта определяются следующим образом:
MiniportInitializeEx
NDIS вызвал функцию MiniportInitializeEx драйвера для инициализации адаптера. Дополнительные сведения об инициализации адаптера см. в разделе Инициализация адаптера miniport.
Инициализация завершена
После успешного возврата MiniportInitializeEx операция инициализации завершается, а адаптер находится в состоянии Приостановлено.
MiniportShutdownEx
NDIS вызвал функцию MiniportShutdownEx драйвера для завершения работы адаптера. Дополнительные сведения см. в разделе Завершение работы адаптера Miniport.
MiniportHaltEx
NDIS вызвал функцию MiniportHaltEx драйвера для остановки адаптера. Дополнительные сведения см. в разделе Остановка адаптера miniport.
MiniportRestart
NDIS вызвал функцию MiniportRestart драйвера для перезапуска приостановленного адаптера. Так как адаптер находится в состоянии Приостановлено после инициализации, это событие также требуется для запуска адаптера после завершения инициализации адаптера. Дополнительные сведения см. в разделе Запуск адаптера.
Перезапуск завершен
Когда драйвер будет готов к обработке операций отправки и получения, операция перезапуска завершается, а адаптер находится в состоянии Выполняется.
MiniportPause
NDIS вызвал функцию MiniportPause драйвера для приостановки адаптера. Дополнительные сведения см. в разделе Приостановка адаптера.
Приостановка завершена
После завершения драйвером всех операций, необходимых для остановки операций отправки и получения, операция приостановки завершается, а адаптер находится в состоянии Приостановлено.
Примечание Драйвер должен дождаться, пока NDIS возвратит все оставшиеся признаки получения, прежде чем операция приостановки будет завершена.
Сбой инициализации
Если NDIS вызывает функцию MiniportInitializeEx драйвера и попытка инициализации завершается ошибкой, адаптер возвращается в состояние Остановлено.
Сбой перезапуска
Если NDIS вызывает функцию MiniportRestart драйвера и попытка перезагрузки завершается сбоем, адаптер остается в состоянии Приостановлено.
Операции отправки и получения
Драйвер должен обрабатывать операции отправки и получения в состояниях Выполнение и Приостановка. Дополнительные сведения об операциях отправки и получения см. в разделе Miniport Driver Send and Receive Operations.
Запросы OID
Драйвер должен обрабатывать запросы OID в состояниях Выполнение, Перезапуск, Приостановлено и Приостановка. Дополнительные сведения о запросах OID см. в разделе Запросы OID для адаптера.
Связанные темы
Инициализация адаптера miniport
Завершение работы адаптера miniport