Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
В этом разделе представлен обзор операционных состояний очередей виртуальных машин NDIS (VMQs). Для получения дополнительной информации о состояниях очередей см. тему Состояния очередей и операций в разделе Написание драйверов VMQ.
Для каждой очереди сетевой адаптер должен поддерживать следующий набор операционных состояний:
Неопределенный
Выделенных
Набор
Приостановлена
Бег
Остановка DMA
Освобождение
На следующем рисунке показаны связи между этими состояниями.
Ниже определены состояния адаптера:
неопределенный
неопределенный — начальное состояние очереди. В этом состоянии очередь не выделяется. Очередь (за исключением очереди по умолчанию, которая всегда существует) не определена, пока драйвер мини-порта не получит запрос на выделение очереди. Кроме того, он не определен после завершения операции освобождения, и любые индикации приёма, которые были запущены, завершены.
выделено
Очередь находится в состоянии «выделено» после запроса на выделение и перед тем, как на очередь установлены какие-либо фильтры. Фильтр также может ввести выделенное состояние, если очередь находится в состоянии Set, а последний фильтр очищается в очереди. Очередь переходит в состояние паузы, если драйвер минипорта получает запрос на завершение выделения, находясь в состоянии "Выделенный". Очередь входит в состояние остановки DMA, если драйвер минипорта получает запрос освобождения очереди.
набор
В состоянии Set выделена очередь, а в очереди установлен хотя бы один фильтр, но драйвер мини-порта еще не получил полный идентификатор выделения. Очередь переходит в состояние "Выполнение", если она получает запрос на завершение выделения. Очередь переходит в состояние "Выделено", если последний фильтр в очереди очищен. Обратите внимание, что очередь не может быть освобождена при наличии фильтров, установленных в очереди.
приостановлено
В приостановленном состоянии очередь выделяется, но её минипорт-драйвер не сигнализирует о полученных пакетах, так как в очереди нет установленных фильтров. Минипорт-драйвер может перейти в состояние паузы либо из выделенного состояния, либо из состояния выполнения. Очередь переходит в состояние "Выполнение" при получении запроса на установку фильтров. Очередь переходит в состояние остановки DMA при получении запроса от свободной очереди.
Запуск
В рабочем состоянии очередь имеет набор фильтров, выделение очереди завершено, а сетевой адаптер указывает на принимаемые пакеты. Очередь переходит в состояние паузы, если последний фильтр в очереди очищается. Обратите внимание, что очередь не может быть освобождена при наличии фильтров, установленных в очереди. Кроме того, минипорт-драйвер может остановить DMA, если последний фильтр очищен. Однако в этом случае драйвер минипорта не должен отправлять данные о состоянии остановленного DMA.
остановка DMA
В состоянии остановка DMA драйвер минипорта получил запрос на освобожденную очередь, и активность DMA должна быть приостановлена. Минипорт-драйвер должен отправить сообщение об остановленном состоянии DMA. После того как драйвер минипорта отправляет индикацию состояния, очередь переходит в состояние освобождения. Обратите внимание, что DMA, вероятно, уже был остановлен, когда последний фильтр был очищен. Однако минипорт-драйвер должен отправлять индикацию состояния только при получении запроса на освобождение очереди.
освобождение
В состоянии освобождения минипорт-драйвер ожидает завершения всех незавершённых уведомлений о получении в очереди и освобождает ресурсы, связанные с этой очередью. После освобождения всех ресурсов очередь переходит в неопределенное состояние.