虚拟工作站

 

从 NDIS 6.20 (Windows 7) 开始,操作系统提供了一个可与 802.11 微型端口驱动程序交互的虚拟网络 (VSTA) 。

独立硬件供应商 (IHV) 通过 IHV 扩展性框架 而不是 Win32 应用程序编程接口 (API) 使用 VSTA 功能。

当 IHV 扩展 DLL 调用 Dot11ExtRequestVirtualStation 函数时,将启动虚拟工作站的创建。 操作系统一次仅在计算机上创建一个虚拟工作站,并且仅当 IHV 扩展 DLL 发出 Dot11ExtRequestVirtualStation 请求时。

操作系统调用 Dot11ExtIhvInitVirtualStation 函数来初始化虚拟工作站操作的 IHV 扩展 DLL。 此调用还会初始化操作系统和 DLL 之间的用户模式 API 接口。

注意 为了确保以一致的方式创建虚拟工作站,计算机应仅安装一个尝试使用虚拟工作站功能的 IHV 扩展 DLL。 即使安装了多个 DLL,也只能创建一个虚拟工作站。 操作系统无法保证计算机重启后哪个 DLL 有权访问虚拟工作站。 请注意,如果已根据一个 DLL 和另一个 DLL 的请求创建了虚拟工作站,然后调用 Dot11ExtRequestVirtualStation,则可能会返回成功代码,但不会创建第二个虚拟工作站。 IHV 扩展 DLL 应在调用 Dot11ExtRequestVirtualStation 函数后设置两分钟的计时器。 如果计时器在虚拟工作站适配器到达事件之前过期,DLL 应假定未创建虚拟工作站。

 

可扩展 AP/虚拟工作站交互

如果驱动程序实现了虚拟工作站功能,但无法在不同的端口上同时维持 可扩展接入点 (ExtAP) 和虚拟工作站连接,则驱动程序应执行以下操作。

  • 通知操作系统用于 ExtAP 的端口是否随时可以或无法维持功能。 具体而言,驱动程序应使用相应的状态代码 ( NDIS_STATUS_INDICATION-StatusCode>) 和原因代码,在 ExtAP 端口上发出以下状态指示:

    NDIS_STATUS_DOT11_STOP_AP
    指示无法在 ExtAP 端口上维持 AP 功能。 在这种情况下,请将 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