Виртуальная станция

 

Начиная с NDIS 6.20 (Windows 7), операционная система предоставляет виртуальную станцию (VSTA), которая может взаимодействовать с драйвером минипорта 802.11.

Независимый поставщик оборудования (IHV) использует функции VSTA через платформу расширяемости IHV , а не через интерфейсы программирования приложений Win32 (API).

Создание виртуальной станции инициируется, когда DLL расширений IHV вызывает функцию Dot11ExtRequestVirtualStation. Операционная система создает только одну виртуальную станцию на компьютере одновременно, и только если библиотека DLL расширений IHV выдает запрос Dot11ExtRequestVirtualStation .

Операционная система вызывает функцию Dot11ExtIhvInitVirtualStation , чтобы инициализировать библиотеку DLL расширений IHV для операций виртуальной станции. Этот вызов также инициализирует интерфейс API пользовательского режима между операционной системой и библиотекой DLL.

Заметка Чтобы виртуальная станция была создана согласованно, компьютер должен иметь только одну установку библиотеки DLL расширений IHV, которая пытается использовать функциональные возможности виртуальной станции. Даже если установлено несколько библиотек DLL, можно создать только одну виртуальную станцию. Операционная система не может гарантировать, какие библиотеки DLL будут иметь доступ к виртуальной станции после перезапуска компьютера. Обратите внимание, что если виртуальная станция уже создана по запросу одной DLL, и вторая DLL затем вызывает Dot11ExtRequestVirtualStation, код успешного выполнения может быть возвращен, но вторая виртуальная станция не будет создана. Библиотека DLL расширений IHV должна установить двухминутный таймер после вызова функции Dot11ExtRequestVirtualStation. Если срок действия таймера истекает до события прибытия адаптера виртуальной станции, библиотека DLL должна предположить, что виртуальная станция не была создана.

 

Расширяемые взаимодействия AP/Виртуальной станции

Если драйвер реализует функциональные возможности виртуальной станции, но не может поддерживать как расширяемую точку доступа (ExtAP), так и подключения виртуальной станции одновременно на разных портах, драйвер должен выполнить следующие действия.

  • Сообщите операционной системе, может ли порт, используемый для ExtAP, постоянно поддерживать свою функциональность. В частности, драйвер должен выдавать следующие указания состояния на порту ExtAP, используя соответствующий код состояния (NDIS_STATUS_INDICATION-StatusCode>) и код причины:

    NDIS_STATUS_DOT11_STOP_AP
    Указывает, что функциональные возможности AP не могут поддерживаться на порту ExtAP. В этом случае параметру DOT11_STOP_AP_PARAMETERS->ulReason нужно задать значение DOT11_STOP_AP_REASON_AP_ACTIVE. Выдайте это статусное указание в следующих ситуациях:

    • Прежде чем порт виртуальной станции начнет использовать общий ресурс, блокирующий одновременное подключение виртуальной станции и ExtAP.
    • Если порт ExtAP переходит в состояние ExtAP INIT, и использование ресурсов виртуальной станции может предотвратить успешную инициализацию порта ExtAP.

    NDIS_STATUS_DOT11_CAN_SUSTAIN_AP
    Указывает, что порт виртуальной станции отключен или использование ресурса виртуальной станции не будет препятствовать успешному переходу порта в состояние ExtAP INIT.

  • При подключении к порту виртуальной станции вызовите функцию Dot11ExtSetVirtualStationAPProperties, чтобы предоставить сведения о реализации точки доступа (AP), организованной подключением виртуальной станции.

  • Отключите соединения с портом виртуальной станции, если порт ExtAP работает в состоянии OP и возникает одна из следующих ситуаций:

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

Собственные функции расширения 802.11 IHV, поддерживающие виртуальную станцию

Dot11ExtQueryVirtualStationProperties

Dot11ExtReleaseVirtualStation

Dot11ExtRequestVirtualStation

Dot11ExtSetVirtualStationAPProperties

Структуры, поддерживающие виртуальную станцию

DOT11EXT_VIRTUAL_STATION_AP_PROPERTY

DOT11EXT_VIRTUAL_STATION_APIS