关联前的操作指导原则
执行预关联操作时,IHV 扩展 DLL 必须遵循这些准则。
调用 Dot11ExtIhvPerformPreAssociate 函数时,IHV 扩展 DLL 必须执行以下操作:
- 验证连接和安全配置文件的 IHV 扩展。 如果配置文件参数无效, Dot11ExtIhvPerformPreAssociate 函数将返回 Winerror.h 中定义的相应错误代码。
- 创建并启动一个新线程,用于完成预关联操作。 由于预关联操作必须从调用 Dot11ExtIhvPerformPreAssociate 异步完成,因此 IHV 扩展 DLL 必须在操作完成后从此线程调用 Dot11ExtPreAssociateCompletion 。
- 从函数调用返回ERROR_SUCCESS。 此时,系统会通知操作系统网络配置文件有效,并且正在进行预关联操作。
IHV 扩展 DLL 可以调用 Dot11ExtNicSpecificExtension 函数来配置无线 LAN (WLAN) 适配器。 此函数可以从对 Dot11ExtIhvPerformPreAssociate 的调用中调用,也可以从处理 Dot11ExtIhvPerformPreAssociate 返回后的预关联操作的线程调用。
不得在 对 Dot11ExtSetProfileCustomUserData、 Dot11ExtGetProfileCustomUserData 和 Dot11ExtSetCurrentProfile 的调用中调用 Dot11ExtIhvPerformPreAssociate。 这些函数只能在 Dot11ExtIhvPerformPreAssociate 返回ERROR_SUCCESS后调用。
在 IHV 扩展 DLL 调用 Dot11ExtPreAssociateCompletion 以完成预关联操作之后,连接会话的句柄不再有效。 操作系统通过 Dot11ExtIhvPerformPreAssociate 的 hConnectSession 参数传递此句柄。 调用声明 hConnectSession 参数的任何 IHV 扩展性函数时,DLL 不得使用此句柄值。
有关 IHV 扩展性函数的详细信息,请参阅 本机 802.11 IHV 扩展性函数。
如果调用 Dot11ExtIhvAdapterReset 函数,则 IHV 扩展 DLL 必须通过调用 Dot11ExtPreAssociateCompletion 取消预关联操作。 有关重置操作的详细信息,请参阅 802.11 WLAN 适配器重置。
如果调用 Dot11ExtIhvDeinitAdapter 函数,则 IHV 扩展 DLL 必须在内部取消预关联操作。 但是,它不得调用任何只能在适配器初始化后调用的 IHV 扩展性函数,包括 Dot11ExtPreAssociateCompletion。