Performing a Post-Association Operation
When the wireless LAN (WLAN) adapter successfully completes an 802.11 association operation with an access point (AP), the Native 802.11 miniport driver notifies the operating system by making an NDIS_STATUS_DOT11_ASSOCIATION_COMPLETION indication. For more information about the association operation, see Association Operations.
Note For Windows Vista, the IHV Extensions DLL supports only infrastructure basic service set (BSS) networks.
After the operating system receives the NDIS_STATUS_DOT11_ASSOCIATION_COMPLETION indication, it calls the Dot11ExtIhvPerformPostAssociate function to notify the IHV Extensions DLL of the following:
The creation of a new data port for the association with the AP. The IHV Extensions DLL is passed the current state of the data port through the pPortState parameter of the Dot11ExtIhvPerformPostAssociate function. For more information about the port state parameter, see DOT11_PORT_STATE.
The parameters of the association between the wireless LAN (WLAN) adapter and the AP. The IHV Extensions DLL is passed the association parameters through the pDot11AssocParams parameter of the Dot11ExtIhvPerformPostAssociate function. For more information about the association parameters, see DOT11_ASSOCIATION_COMPLETION_PARAMETERS.
When Dot11ExtIhvPerformPostAssociate is called, the IHV Extensions DLL initiates a post-association operation with the AP to authenticate the data port. Through this operation, the IHV Extensions DLL can do the following:
Allocate any resources needed for the new data port.
Perform proprietary security processing on the data port for the association. The IHV Extensions DLL can determine the current state of the data port from pPortState parameter of the Dot11ExtIhvPerformPostAssociate function.
Call the Dot11ExtSendUIRequest function to request the IHV UI Extensions DLL to prompt the user for security parameters, such as the user's credentials.
Authenticate with the AP using the authentication algorithm enabled through Dot11ExtSetAuthAlgorithm. The IHV Extensions DLL calls Dot11ExtSetAuthAlgorithm during the pre-association operation. For more information about this operation, see Pre-Association Operations.
Send security packets to the AP through calls to the Dot11ExtSendPacket function.
When the security packet has been sent, the operating notifies the IHV Extensions DLL through a call to the Dot11ExtIhvSendPacketCompletion function.
For more information about sending security packets, see Send Operations.
Receive security packets from the AP. The operating system calls the Dot11ExtIhvReceivePacket function for each security packet received by the WLAN adapter.
Each received security packet is serialized and indicated in the order they were received from the WLAN adapter. The operating system only calls the Dot11ExtIhvReceivePacket function to indicate received security packets that match an entry in the list of IEEE EtherTypes, which were specified by the IHV Extensions DLL through a call to the Dot11ExtSetEtherTypeHandling function.
For more information about receiving security packets, see Receive Operations.
Configure the WLAN adapter with the cipher keys that are derived through the authentication algorithm. The following IHV Extensibility functions can be called to download the cipher keys to the WLAN adapter.
Configure the WLAN adapter to exclude unencrypted packets through a call to the Dot11ExtSetExcludeUnencrypted IHV Extensibility function.
After the data port has been authenticated, the IHV Extensions DLL must call Dot11ExtPostAssociateCompletion to complete the post-association operation.
The following figure shows the steps involved during the post-association operation.
The IHV Extensions DLL must follow these guidelines when performing the post-association operation.
The IHV Extensions DLL must call Dot11ExtPostAssociateCompletion asynchronously from the call to Dot11ExtIhvPerformPostAssociate.
After completing the post-association operation, the IHV Extensions DLL can call Dot11ExtPostAssociateCompletion whenever the authentication status of the data port changes.
If the Dot11ExtIhvAdapterReset function is called, the IHV Extensions DLL must cancel all pending post-association operations by calling Dot11ExtPostAssociateCompletion. For more information about the reset operation, see 802.11 WLAN Adapter Reset.
If the Dot11ExtIhvDeinitAdapter function is called, the IHV Extensions DLL must cancel all pending post-association operations internally. However, it must not call any of the IHV Extensibility functions that can be called only after adapter initialization, including Dot11ExtPostAssociateCompletion. For more information about the IHV Extensibility functions, see Native 802.11 IHV Extensibility Functions.