Virtual Station

 

Beginning with NDIS 6.20 (Windows 7), the operating system provides a virtual station (VSTA) that can interact with the 802.11 miniport driver.

An independent hardware vendor (IHV) uses VSTA functionality through the IHV Extensibility framework rather than through Win32 application programming interfaces (APIs).

The creation of the virtual station is initiated when the IHV Extensions DLL calls the Dot11ExtRequestVirtualStation function. The operating system creates only one virtual station on the computer at a time, and only if an IHV Extensions DLL issues a Dot11ExtRequestVirtualStation request.

The operating system calls the Dot11ExtIhvInitVirtualStation function to initialize the IHV Extensions DLL for virtual station operations. This call also initializes the user-mode API interface between the operating system and the DLL.

Note  To ensure that a virtual station is created in a consistent fashion, a computer should have only one installation of the IHV Extensions DLL that attempts to use Virtual Station functionality. Even if more than one DLL is installed, only one virtual station can be created. The operating system cannot guarantee which DLL will have access to a virtual station after the computer is restarted. Note that if a virtual station already has been created at the request of one DLL and a second DLL then calls Dot11ExtRequestVirtualStation, a success code might be returned but a second virtual station will not be created. An IHV Extensions DLL should set a two-minute timer after it calls the Dot11ExtRequestVirtualStation function. If the timer expires before the virtual station adapter arrival event, the DLL should assume that the virtual station was not created.

 

Extensible AP/Virtual Station Interactions

If your driver implements virtual station functionality but cannot sustain both Extensible Access Point (ExtAP) and virtual station connections at the same time on different ports, the driver should perform the following actions.

  • Inform the operating system whether a port that is being used for ExtAP can or cannot sustain functionality at all times. In particular, the driver should issue the following status indications on the ExtAP port, using the appropriate status code ( NDIS_STATUS_INDICATION->StatusCode) and reason code:

    NDIS_STATUS_DOT11_STOP_AP
    Indicates that AP functionality cannot be sustained on the ExtAP port. In this case, set DOT11_STOP_AP_PARAMETERS-> ulReason to a value of DOT11_STOP_AP_REASON_AP_ACTIVE. Issue this status indication in the following situations:

    • Before the virtual station port begins to use the shared resource that would block simultaneous virtual station and ExtAP connections
    • If the ExtAP port transitions to the ExtAP INIT state, and virtual station resource use would prevent successful initialization of the ExtAP port.

    NDIS_STATUS_DOT11_CAN_SUSTAIN_AP
    Indicates that the virtual station port is disconnected, or that use of a virtual station resource will not prevent successful transition of the port to the ExtAP INIT state.

  • While connecting to a virtual station port, call the Dot11ExtSetVirtualStationAPProperties function to provide information about the AP implementation that is hosted by the virtual station connection.

  • Fail the virtual station port connections if the ExtAP port is running in the OP state and one of the following situations occurs:

    • One or more clients is on the ExtAP port.
    • The virtual station attempts to start a connection that duplicates Wireless Hosted Network settings.

Native 802.11 IHV Extensibility Functions That Support a Virtual Station

Dot11ExtQueryVirtualStationProperties

Dot11ExtReleaseVirtualStation

Dot11ExtRequestVirtualStation

Dot11ExtSetVirtualStationAPProperties

Structures That Support a Virtual Station

DOT11EXT_VIRTUAL_STATION_AP_PROPERTY

DOT11EXT_VIRTUAL_STATION_APIS