<?xml version="1.0" encoding="utf-8" ?>
<WABIModel xmlns="http://WABIModelSchema">
  <messages>
    <!-- Keep the message list in order with the defines for Message IDs in dot11wdi.h -->
    <!-- type="" means the message is not implemented (yet) -->
    <!-- type="" and description="reserved" means the # is not a valid message ID (helpful in detecting duplicate or missing IDs)-->
    <!-- description="No TLV data needed, header is sufficient" For this message, just a header is sufficient, no TLVs are needed in it -->
    <!-- description="not implemented yet - <description of message>" TLV can be generated/parsed with library but the wdi code to use the parse/generate is not implemented yet-->
    <!-- versionRemoved="WDI_VERSION_XXXX" Must match a #define in dot11wdi.h for a given version number.  This is the lowest version number
         where the given containerRef is no longer valid (meaning the containerRef is valid only for 'PeerVerion < versionRemoved') -->
    <!-- versionAdded="WDI_VERSION_XXXX" Must match a #define in dot11wdi.h for a given version number.  This is the lowest version number
         where the given containerRef is first valid (meaning the containerRef is valid only for 'PeerVerion >= versionAdded') -->

    <message commandId="WDI_TASK_OPEN" type="WDI_TASK_OPEN_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_TASK_CLOSE" type="WDI_TASK_CLOSE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_SET_HOST_DETECT_ERROR" type="WDI_SET_HOST_DETECT_ERROR_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_TASK_SCAN" type="WDI_SCAN_PARAMETERS" description="Parameters for WDI_TASK_SCAN" direction="ToIhv" >
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer" optional="false" />
      <containerRef id="WDI_TLV_SSID" name="SSIDList" optional="false" type="WiFiSSID" multiContainer="true" />
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_SCAN_MODE" name="ScanModeParameters" type="ScanMode" />
      <containerRef id="WDI_TLV_SCAN_DWELL_TIME" name="DwellTime" type="ScanDwellTimeContainer"/>
      <containerRef id="WDI_TLV_BAND_CHANNEL" name="BandChannelList" type="ScanBandChannelListContainer" optional="true" multiContainer="true" />
      <containerRef id="WDI_TLV_6_GHZ_BAND_CHANNEL" name="SixGHzBandChannelList" type="SixGHzScanBandChannelListContainer" optional="true" multiContainer="true" versionAdded="WDI_VERSION_1_1_10" />
    </message>
    <message commandId="WDI_TASK_SCAN" type="WDI_SCAN_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_P2P_DISCOVER" type="WDI_TASK_P2P_DISCOVER_PARAMETERS" description="Parameters to issue a P2P Discovery." direction="ToIhv">
      <containerRef id="WDI_TLV_P2P_DISCOVER_MODE" name="DiscoverMode" type="P2PDiscoverModeContainer"/>
      <containerRef id="WDI_TLV_SCAN_DWELL_TIME" name="DwellTime" type="ScanDwellTimeContainer"/>
      <containerRef id="WDI_TLV_P2P_DISCOVERY_CHANNEL_SETTINGS" optional="true" name="DiscoveryChannelSettings" type="DiscoveryChannelSettingsContainer" multiContainer="true"/>
      <containerRef id="WDI_TLV_SSID" name="SSIDList" optional="true" type="WiFiSSID" multiContainer="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME_HASH" name="ServiceNameHash" optional="true" type="ServiceNameHashContainer" multiContainer="true" />
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION_DISCOVERY_ENTRY" name="ServiceInformationDiscoveryEntry" optional="true" type="ServiceInformationDiscoveryEntryContainer" multiContainer="true" />
      <containerRef id="WDI_TLV_P2P_ASP2_SERVICE_INFORMATION_DISCOVERY_ENTRY" name="ASP2ServiceInformationDiscoveryEntry" optional="true" type="ASP2ServiceInformationDiscoveryEntryContainerV1_0_20" multiContainer="true" versionAdded="WDI_VERSION_1_0_20" versionRemoved="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_INCLUDE_LISTEN_CHANNEL" name="bIncludeListenChannel" type="BOOLContainer" optional="true" versionAdded="WDI_VERSION_1_0_20" />
    </message>
    <message commandId="WDI_TASK_P2P_DISCOVER" type="WDI_TASK_P2P_DISCOVER_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_P2P_START_BACKGROUND_DISCOVERY" type="WDI_SET_P2P_START_BACKGROUND_DISCOVERY_PARAMETERS" description="Parameters to issue a P2P Background Discovery." direction="ToIhv">
      <containerRef id="WDI_TLV_P2P_BACKGROUND_DISCOVER_MODE" name="DiscoverMode" type="P2PBackgroundDiscoverModeContainer"/>
      <containerRef id="WDI_TLV_P2P_DISCOVERY_CHANNEL_SETTINGS" optional="true" name="DiscoveryChannelSettings" type="DiscoveryChannelSettingsContainer" multiContainer="true"/>
      <containerRef id="WDI_TLV_P2P_DEVICE_FILTER_LIST" name="DeviceFilterList" type="MacAddressListContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME_HASH" name="ServiceNameHash" optional="true" type="ServiceNameHashContainer" multiContainer="true" />
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
    </message>
    <message commandId="WDI_SET_P2P_START_BACKGROUND_DISCOVERY" type="WDI_SET_P2P_START_BACKGROUND_DISCOVERY_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_P2P_STOP_BACKGROUND_DISCOVERY" type="WDI_SET_P2P_STOP_BACKGROUND_DISCOVERY_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_TASK_CONNECT" type="WDI_TASK_CONNECT_PARAMETERS" description="Parameters for WDI_TASK_CONNECT." direction="ToIhv" >
      <containerRef id="WDI_TLV_CONNECT_PARAMETERS" name="ConnectParameters" type="ConnectParametersContainer" />
      <containerRef id="WDI_TLV_CONNECT_BSS_ENTRY" name="PreferredBSSEntryList" type="ConnectBSSEntryContainer" multiContainer="true" optional="false" />
    </message>
    <message commandId="WDI_TASK_CONNECT" type="WDI_TASK_CONNECT_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_DOT11_RESET" type="WDI_TASK_DOT11_RESET_PARAMETERS" description="Parameters for WDI_TASK_DOT11_RESET." direction="ToIhv">
      <containerRef id="WDI_TLV_DOT11_RESET_PARAMETERS" name="Dot11ResetParameters" type="Dot11ResetParametersContainer" optional="false" />
      <containerRef id="WDI_TLV_CONFIGURED_MAC_ADDRESS" name="ResetMACAddress" type="MacAddressContainer" optional="true" />
    </message>    
    <message commandId="WDI_TASK_DOT11_RESET" type="WDI_TASK_DOT11_RESET_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_DISCONNECT" type="WDI_TASK_DISCONNECT_PARAMETERS" description="Parameters for disconnecting from AP, or disconnecting a peer device." direction="ToIhv">
      <containerRef id="WDI_TLV_DISCONNECT_PARAMETERS" name="DisconnectParameters" type="DisconnectParametersContainer" />
    </message>
    <message commandId="WDI_TASK_DISCONNECT" type="WDI_TASK_DISCONNECT_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_P2P_SEND_REQUEST_ACTION_FRAME" type="WDI_TASK_P2P_SEND_REQUEST_ACTION_FRAME_PARAMETERS" description="Parameters to send an action frame request." direction="ToIhv">
      <containerRef id="WDI_TLV_P2P_SEND_ACTION_REQUEST_FRAME_PARAMETERS" name="RequestParams" type="P2PSendActionFrameRequestParamsContainer"/>
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_REQUEST_INFO" name="GONegotiationRequestInfo" type="P2PGONegotiationRequestInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_INVITATION_REQUEST_INFO" name="InvitationRequestInfo" type="P2PInvitationRequestInfoContainer" optional="true"/>
      <containerRef id="WDI_TLV_P2P_PROVISION_DISCOVERY_REQUEST_INFO" name="ProvisionDiscoveryRequestInfo" type="P2PProvDiscRequestInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_BSS_ENTRY" name="DeviceDescriptor" type="BSSEntryContainer"/>
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
    </message>
    <message commandId="WDI_TASK_P2P_SEND_REQUEST_ACTION_FRAME" type="WDI_TASK_P2P_SEND_REQUEST_ACTION_FRAME_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_P2P_SEND_RESPONSE_ACTION_FRAME" type="WDI_TASK_P2P_SEND_RESPONSE_ACTION_FRAME_PARAMETERS" description="Parameters to send an action frame response." direction="ToIhv">
      <containerRef id="WDI_TLV_P2P_ACTION_FRAME_RESPONSE_PARAMETERS" name="ResponseParams" type="P2PSendActionFrameResponseParamsContainer" />
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_RESPONSE_INFO" name="GONegotiationResponseInfo" type="P2PGONegotiationResponseInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_CONFIRMATION_INFO" name="GONegotiationConfirmationInfo" type="P2PGONegotiationConfirmationInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_INVITATION_RESPONSE_INFO" name="InvitationResponseInfo" type="P2PInvitationResponseInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_PROVISION_DISCOVERY_RESPONSE_INFO" name="ProvisionDiscoveryResponseInfo" type="P2PProvDiscResponseInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_INCOMING_FRAME_INFORMATION" name="PrecedingFrameInformation" type="P2PIncomingFrameInformationContainer" />
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
    </message>
    <message commandId="WDI_TASK_P2P_SEND_RESPONSE_ACTION_FRAME" type="WDI_TASK_P2P_SEND_RESPONSE_ACTION_FRAME_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_SET_RADIO_STATE" type="WDI_SET_RADIO_STATE_PARAMETERS" description="Parameters for WDI_TASK_SET_RADIO_STATE" direction="ToIhv" >
      <containerRef id="WDI_TLV_RADIO_STATE_PARAMETERS" name="SoftwareRadioState" type="UINT8Container" />
    </message>
    <message commandId="WDI_TASK_SET_RADIO_STATE" type="WDI_SET_RADIO_STATE_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_CREATE_PORT" type="WDI_TASK_CREATE_PORT_PARAMETERS" description="Parameters for WDI_TLV_CREATE_PORT." direction="ToIhv">
      <containerRef id="WDI_TLV_CREATE_PORT_PARAMETERS" name="CreatePortParameters" type="CreatePortParametersContainer" optional="false"/>
      <containerRef id="WDI_TLV_CREATE_PORT_MAC_ADDRESS" name="MacAddress" type="MacAddressContainer" optional="true" />
    </message>
    <message commandId="WDI_TASK_CREATE_PORT" type="WDI_TASK_CREATE_PORT_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_DELETE_PORT" type="WDI_TASK_DELETE_PORT_PARAMETERS" description="Parameters for WDI_TASK_DELETE_PORT." direction="ToIhv">
      <containerRef id="WDI_TLV_DELETE_PORT_PARAMETERS" name="DeletePortParameters" type="DeletePortParametersContainer" optional="false" />
    </message>
    <message commandId="WDI_TASK_DELETE_PORT" type="WDI_TASK_DELETE_PORT_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_START_AP" type="WDI_TASK_START_AP_PARAMETERS" description="Parameters for WDI_TASK_START_AP." direction="ToIhv" >
      <containerRef id="WDI_TLV_SSID" name="DesiredSSID" type="WiFiSSID" />
      <containerRef id="WDI_TLV_START_AP_PARAMETERS" name="StaticParameters" type="StartAPParametersContainer" versionAdded="WDI_VERSION_1_0_10" />
      <containerRef id="WDI_TLV_START_AP_PARAMETERS" name="StaticParameters" type="StartAPParametersContainerV1_0_1" versionRemoved="WDI_VERSION_1_0_10" />
      <containerRef id="WDI_TLV_AUTH_ALGO_LIST" name="AuthenticationAlgorithms" type="AuthAlgoList" />
      <containerRef id="WDI_TLV_MULTICAST_CIPHER_ALGO_LIST" name="MulticastCipherAlgorithms" type="CipherAlgoList"/>
      <containerRef id="WDI_TLV_UNICAST_CIPHER_ALGO_LIST" name="UnicastCipherAlgorithms" type="CipherAlgoList"/>
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" name="AdvertisedOperatingChannel" optional="true" type="WFDChannelContainer"/>
      <containerRef id="WDI_TLV_AP_BAND_CHANNEL" name="APBandChannelList" optional="true" type="APBandChannelListContainer" multiContainer="true" versionAdded="WDI_VERSION_1_0_10" />
    </message>
    <message commandId="WDI_TASK_START_AP" type="WDI_TASK_START_AP_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_STOP_AP" type="WDI_TASK_STOP_AP_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="16" type="" description="reserved" direction="Both" />

    <message commandId="WDI_TASK_SEND_AP_ASSOCIATION_RESPONSE" type="WDI_TASK_SEND_AP_ASSOCIATION_RESPONSE_PARAMETERS" description="Parameters to send an association response frame to a peer device." direction="ToIhv">
      <containerRef id="WDI_TLV_ASSOCIATION_RESPONSE_PARAMETERS" name="AssocResponseParameters" type="APAssociationResponseParametersContainer"/>
      <containerRef id="WDI_TLV_VENDOR_SPECIFIC_IE" name="VendorIEs" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_INCOMING_ASSOCIATION_REQUEST_INFO" name="IncomingRequestInfo" type="APIncomingAssociationRequestInfoContainer"/>
      <containerRef id="WDI_TLV_WFD_ASSOCIATION_STATUS" name="WFDAssociationStatus" type="UINT8Container" optional="true" />
    </message>
    <message commandId="WDI_TASK_SEND_AP_ASSOCIATION_RESPONSE" type="WDI_TASK_SEND_AP_ASSOCIATION_RESPONSE_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_SET_READY_TO_RECEIVE_INDICATIONS" type="WDI_TASK_SET_READY_TO_RECEIVE_INDICATIONS_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_SET_POWER_STATE" type="WDI_SET_POWER_PARAMETERS" description="Parameters for WDI_SET_POWER" direction="ToIhv" >
      <containerRef id="WDI_TLV_POWER_STATE" name="PowerState" type="UINT32Container"/>
      <containerRef id="WDI_TLV_ENABLE_WAKE_EVENTS" name="WakeEventMask" type="WakeEventMaskContainer" optional="true"/>
      <containerRef id="WDI_TLV_SET_POWER_DX_REASON" name="SetPowerDxReason" type="UINT32Container" optional="true"/>
    </message>
    <message commandId="WDI_SET_POWER_STATE" type="WDI_SET_POWER_RESULTS" description="M3 for WDI_SET_POWER" direction="FromIhv" >
      <containerRef id="WDI_TLV_ADAPTER_RESUME_REQUIRED" name="bResumeRequired" type="BOOLContainer" optional="true"/>
    </message>

    <message commandId="WDI_INDICATION_DISCONNECT_COMPLETE" type="WDI_INDICATION_DISCONNECT_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_SET_RADIO_STATE_COMPLETE" type="WDI_INDICATION_SET_RADIO_STATE_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_SET_READY_TO_RECEIVE_INDICATIONS_COMPLETE" type="WDI_INDICATION_SET_READY_TO_RECEIVE_INDICATIONS_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_OPERATION_MODE" type="WDI_SET_OPERATION_MODE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_SET_END_DWELL_TIME" type="WDI_SET_END_DWELL_TIME_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <!-- Renamed to WDI_SET_ADVERTISEMENT_INFORMATION -->
    <message commandId="WDI_SET_P2P_ADDITIONAL_IE" type="" description="reserved" direction="Both" />

    <message commandId="WDI_SET_P2P_LISTEN_STATE" type="WDI_SET_P2P_LISTEN_STATE_PARAMETERS" description="Parameters to set listen state." direction="ToIhv">
      <containerRef id="WDI_TLV_P2P_LISTEN_STATE" name="ListenState" type="P2PListenStateContainer" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" name="ListenChannel" optional="true" type="WFDChannelContainer"/>
      <containerRef id="WDI_TLV_P2P_LISTEN_DURATION" name="ListenDuration" type="P2PListenDurationContainer"/>
    </message>
    <message commandId="WDI_SET_P2P_LISTEN_STATE" type="WDI_SET_P2P_LISTEN_STATE_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="27" type="" description="reserved" direction="Both" />

    <message commandId="WDI_SET_PRIVACY_EXEMPTION_LIST" type="WDI_SET_PRIVACY_EXEMPTION_LIST_PARAMETERS" description="Parameters for WDI_SET_PRIVACY_EXEMPTION_LIST" direction="ToIhv">
      <containerRef id="WDI_TLV_PRIVACY_EXEMPTION_ENTRY" name="PrivacyExemptionEntry" type="PrivacyExemptionEntryContainer" optional="true" multiContainer ="true"/>
    </message>
    <message commandId="WDI_SET_PRIVACY_EXEMPTION_LIST" type="WDI_SET_PRIVACY_EXEMPTION_LIST_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_ADD_CIPHER_KEYS" type="WDI_SET_ADD_CIPHER_KEYS_PARAMETERS" description="Parameters for WDI_SET_ADD_CIPHER_KEYS." direction="ToIhv">
      <containerRef id="WDI_TLV_SET_CIPHER_KEY_INFO" name="SetCipherKey" type="SetCipherKeyContainer" optional="false" multiContainer ="true"/>
    </message>
    <message commandId="WDI_SET_ADD_CIPHER_KEYS" type="WDI_SET_ADD_CIPHER_KEYS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_DELETE_CIPHER_KEYS" type="WDI_SET_DELETE_CIPHER_KEYS_PARAMETERS" description="Parameters for WDI_SET_DELETE_CIPHER_KEYS." direction="ToIhv">
      <containerRef id="WDI_TLV_DELETE_CIPHER_KEY_INFO" name="CipherKeyInfo" type="DeleteCipherKeyContainer" optional="false" multiContainer ="true"/>
    </message>
    <message commandId="WDI_SET_DELETE_CIPHER_KEYS" type="WDI_SET_DELETE_CIPHER_KEYS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_DEFAULT_KEY_ID" type="WDI_SET_DEFAULT_KEY_ID_PARAMETERS" description="Parameters for WDI_SET_DEFAULT_KEY_ID" direction="ToIhv">
      <containerRef id="WDI_TLV_DEFAULT_TX_KEY_ID_PARAMETERS" name="DefaultKeyIdParameters" type="DefaultKeyIdParametersContainer" optional="false" />
    </message>
    <message commandId="WDI_SET_DEFAULT_KEY_ID" type="WDI_SET_DEFAULT_KEY_ID_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_CONNECTION_QUALITY" type="WDI_SET_CONNECTION_QUALITY_PARAMETERS" description="Parameters for WDI_SET_CONNECTION_QUALITY" direction="ToIhv" >
        <containerRef id="WDI_TLV_CONNECTION_QUALITY_PARAMETERS" name="Quality" type="ConnectionQualityContainer"/>
        <containerRef id="WDI_TLV_LOW_LATENCY_CONNECTION_QUALITY_PARAMETERS" name="LowLatencyParameters" type="LowLatencyCQParametersContainer" optional ="true"/>
    </message>
    <message commandId="WDI_SET_CONNECTION_QUALITY" type="WDI_SET_CONNECTION_QUALITY_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_STATISTICS" type="WDI_GET_STATISTICS_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId="WDI_GET_STATISTICS" type="WDI_GET_STATISTICS_PARAMETERS" description="MAC and PHY Statistics TLVs" direction="FromIhv" >
      <containerRef id="WDI_TLV_MAC_STATISTICS" name="PeerMACStatistics" type="PeerMACStatisticsContainer" optional="false" multiContainer="true" />
      <containerRef id="WDI_TLV_PHY_STATISTICS" name="PhyStatistics" type="PhyStatisticsContainer" optional="false" multiContainer="true" />
    </message>

    <message commandId="WDI_SET_RECEIVE_PACKET_FILTER" type="WDI_SET_RECEIVE_PACKET_FILTER_PARAMETERS" description="Parameters that define a bitmask filter for data packets to be indicated for a given virtualized port" direction="ToIhv" >
      <containerRef id="WDI_TLV_PACKET_FILTER_PARAMETERS" name="PacketFilterType" type="UINT32Container" optional="false" />
    </message>
    <message commandId="WDI_SET_RECEIVE_PACKET_FILTER" type="WDI_SET_RECEIVE_PACKET_FILTER_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_ADAPTER_CAPABILITIES" type="WDI_GET_ADAPTER_CAPABILITIES_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId="WDI_GET_ADAPTER_CAPABILITIES" type="WDI_GET_ADAPTER_CAPABILITIES_PARAMETERS" description="Get adapter capabilities structure" direction="FromIhv">
      <containerRef id="WDI_TLV_COMMUNICATION_CONFIGURATION_ATTRIBUTES" name="CommunicationAttributes" type="CommunicationAttributesContainer" optional="true" />
      <containerRef id="WDI_TLV_INTERFACE_ATTRIBUTES" name="InterfaceAttributes" type="InterfaceAttributesContainer" />
      <containerRef id="WDI_TLV_STATION_ATTRIBUTES" name="StationAttributes" type="StationAttributesContainer" />
      <containerRef id="WDI_TLV_AP_ATTRIBUTES" name="APAttributes" type="APAttributesContainer" optional="true" />
      <containerRef id="WDI_TLV_VIRTUALIZATION_ATTRIBUTES" name="VirtualizationAttributes" type="VirtualizationAttributesContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_ATTRIBUTES" name="P2PAttributes" type="P2PAttributesContainer" optional="true" />
      <containerRef id="WDI_TLV_DATAPATH_ATTRIBUTES" name="DatapathAttributes" type="DatapathAttributesContainer" optional="true" />
      <containerRef id="WDI_TLV_BAND_INFO" name="BandInfo" type="BandInfoContainer" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_PHY_INFO" name="PhyInfo" type="PhyInfoContainer" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_PM_CAPABILITIES" name="PmCapabilities" type="PmCapabilitiesContainer" optional="true" />
      <containerRef id="WDI_TLV_COUNTRY_REGION_LIST" name="CountryRegionList" type="CountryRegionListContainer" optional ="true" />
      <containerRef id="WDI_TLV_RECEIVE_COALESCING_CAPABILITIES" name="ReceiveCoalescingCapabilities" type="ReceiveCoalescingCapabilitiesContainer" optional="true" />
      <containerRef id="WDI_TLV_TCP_OFFLOAD_CAPABILITIES" name="TcpOffloadCapabilities" type="TcpOffloadCapabilitiesContainer" optional="true" />
      <containerRef id="WDI_TLV_SUPPORTED_GUIDS" name="SupportedGuids" type="NdisGuidContainer" multiContainer="true" optional="true" versionAdded="WDI_VERSION_1_0_21" />
      <containerRef id="WDI_TLV_OS_POWER_MANAGEMENT_FEATURES" name="OsPowerMgmtFeatures" type="OsPowerMgmtFeaturesContainer" optional="true" versionAdded="WDI_VERSION_1_1_6" />
    </message>

    <message commandId="WDI_SET_NETWORK_LIST_OFFLOAD" type="WDI_NETWORK_LIST_OFFLOAD_PARAMETERS" description="Parameters for WDI_SET_NETWORK_LIST_OFFLOAD" direction="ToIhv" >
      <containerRef id="WDI_TLV_NETWORK_LIST_OFFLOAD_PARAMETERS" name="NetworkListOffload" type="NetworkListOffloadContainer" optional="false" />
    </message>
    <message commandId="WDI_SET_NETWORK_LIST_OFFLOAD" type="WDI_NETWORK_LIST_OFFLOAD_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_RECEIVE_COALESCING" type="WDI_SET_RECEIVE_COALESCING_PARAMETERS" description="Parameters for WDI_SET_RECEIVE_COALESCING" direction="ToIhv" >
      <containerRef id="WDI_TLV_SET_RECEIVE_COALESCING" name="AddReceiveCoalescing" type="AddReceiveCoalescingContainer" />
    </message>
    <message commandId="WDI_SET_RECEIVE_COALESCING" type="WDI_SET_RECEIVE_COALESCING_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_BSS_ENTRY_LIST" type="WDI_GET_BSS_ENTRY_LIST_UPDATE_PARAMETERS" description="Get cached BSS entry list from adapter" direction="ToIhv" >
      <containerRef id="WDI_TLV_SSID" name="SSID" type="WiFiSSID" />
    </message>
    <message commandId="WDI_GET_BSS_ENTRY_LIST" type="WDI_GET_BSS_ENTRY_LIST_UPDATE_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="49" type="" description="reserved" direction="Both" />

    <message commandId="WDI_INDICATION_DISASSOCIATION" type="WDI_INDICATION_DISASSOCIATION_PARAMETERS" description="" direction="FromIhv" >
      <containerRef id="WDI_TLV_DISASSOCIATION_INDICATION_PARAMETERS" name="DisconnectIndicationParameters" type="DisconnectIndicationParametersContainer" />
      <containerRef id="WDI_TLV_DISCONNECT_DEAUTH_FRAME" name="DeauthFrame" type="ByteBlob"  optional="true" />
      <containerRef id="WDI_TLV_DISCONNECT_DISASSOCIATION_FRAME" name="DisassociationFrame" type="ByteBlob"  optional="true" />
      <containerRef id="WDI_TLV_DISASSOCIATION_PARAMETERS" name="NeedPeerStateCleanup" type="BOOLContainer"  optional="true" />
    </message>

    <message commandId="WDI_INDICATION_ROAMING_NEEDED" type="WDI_INDICATION_ROAMING_NEEDED_PARAMETERS" description="The roaming needed indication is used by the port to tell the host that it should try to find a better peer to connect to" direction="FromIhv" >
      <containerRef id="WDI_TLV_ROAMING_NEEDED_PARAMETERS" name="RoamingReason" type="RoamingReasonContainer" />
    </message>

    <message commandId="WDI_INDICATION_LINK_STATE_CHANGE" type="WDI_INDICATION_LINK_STATE_CHANGE_PARAMETERS" description="Parameters for WDI_INDICATION_LINK_STATE_CHANGE." direction="FromIhv">
      <containerRef id="WDI_TLV_LINK_STATE_CHANGE_PARAMETERS" name="LinkStateChangeParameters" type="LinkStateChangeParametersContainer" optional="false" />
    </message>

    <message commandId="WDI_INDICATION_P2P_ACTION_FRAME_RECEIVED" type="WDI_INDICATION_P2P_ACTION_FRAME_RECEIVED_PARAMETERS" description="Parameters for a P2P action frame received indication." direction="FromIhv">
      <containerRef id="WDI_TLV_P2P_INCOMING_FRAME_INFORMATION" name="FrameInfo" type="P2PIncomingFrameInformationContainer"/>
    </message>

    <message commandId="WDI_INDICATION_AP_ASSOCIATION_REQUEST_RECEIVED" type="WDI_INDICATION_AP_ASSOCIATION_REQUEST_PARAMETERS" description="Parameters for a received Association Request indication." direction="FromIhv">
      <containerRef id="WDI_TLV_INCOMING_ASSOCIATION_REQUEST_INFO" name="IncomingRequestInfo" type="APIncomingAssociationRequestInfoContainer"/>
    </message>

    <message commandId="WDI_INDICATION_NLO_DISCOVERY" type="WDI_INDICATION_NLO_DISCOVERY_PARAMETERS" description="Parameters for NLO discovery indication" direction="FromIhv">
      <containerRef id="WDI_TLV_BSS_ENTRY" name="DeviceDescriptor" type="BSSEntryContainer" multiContainer="true" optional="false" />
    </message>

    <message commandId="WDI_INDICATION_WAKE_REASON" type="WDI_INDICATION_WAKE_REASON_PARAMETERS" description="Parameters for Wake reason" direction="FromIhv" >
      <containerRef id="WDI_TLV_INDICATION_WAKE_REASON" name="WakeEventCode" type="UINT32Container" />
      <containerRef id="WDI_TLV_INDICATION_WAKE_PACKET" name="WakePacket" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_INDICATION_WAKE_PACKET_PATTERN_ID" name="WakePacketPatternId" type="UINT32Container" optional="true" />
    </message>

    <!-- Removed -->
    <message commandId="WDI_INDICATION_PMKID_CANDIDATE_LIST_UPDATE" type="" description="reserved" direction="FromIhv" />

    <message commandId="WDI_INDICATION_TKIP_MIC_FAILURE" type="WDI_INDICATION_TKIP_MIC_FAILURE_PARAMETERS" description="Parameters for TKIP MIC failure indication." direction="FromIhv">
      <containerRef id="WDI_TLV_TKIP_MIC_FAILURE_INFO" name="FailureInfo" type="TkipMicFailureParametersContainer" />
    </message>

    <message commandId="WDI_INDICATION_SCAN_COMPLETE" type="WDI_INDICATION_SCAN_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_P2P_DISCOVERY_COMPLETE" type="WDI_INDICATION_P2P_DISCOVERY_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_BSS_ENTRY_LIST" type="WDI_INDICATION_BSS_ENTRY_LIST_PARAMETERS" description="Completion status used by the device to tell the host about updates to the bss entries." direction="FromIhv">
      <containerRef id="WDI_TLV_BSS_ENTRY" name="DeviceDescriptor" type="BSSEntryContainer" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_INDICATION_DOT11_RESET_COMPLETE" type="WDI_INDICATION_DOT11_RESET_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_CONNECT_COMPLETE" type="WDI_INDICATION_CONNECT_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_P2P_SEND_REQUEST_ACTION_FRAME_COMPLETE" type="WDI_INDICATION_P2P_SEND_REQUEST_ACTION_FRAME_COMPLETE_PARAMETERS" description="Information from device about what request action frame was sent out." direction="FromIhv">
      <containerRef id="WDI_TLV_P2P_SEND_ACTION_FRAME_RESULT" name="SendActionFrameResult" type="P2PSendActionFrameResultContainer" />
    </message>

    <message commandId="WDI_INDICATION_P2P_SEND_RESPONSE_ACTION_FRAME_COMPLETE" type="WDI_INDICATION_P2P_SEND_RESPONSE_ACTION_FRAME_COMPLETE_PARAMETERS" description="Information from device about what response action frame was sent out." direction="FromIhv">
      <containerRef id="WDI_TLV_P2P_SEND_ACTION_FRAME_RESULT" name="SendActionFrameResult" type="P2PSendActionFrameResultContainer" />
    </message>

    <message commandId="WDI_INDICATION_RADIO_STATUS" type="WDI_INDICATION_RADIO_STATUS_PARAMETERS" description="Radio status indication" direction="FromIhv">
      <containerRef id="WDI_TLV_RADIO_STATE" name="RadioState" type="RadioStateContainer" />
    </message>

    <message commandId="WDI_INDICATION_CREATE_PORT_COMPLETE" type="WDI_INDICATION_CREATE_PORT_COMPLETE_PARAMETERS" description="Parameters for WDI_INDICATION_CREATE_PORT_COMPLETE." direction="FromIhv">
      <containerRef id="WDI_TLV_PORT_ATTRIBUTES" name="PortAttributes" type="PortAttributesContainer" optional="false" />
    </message>

    <message commandId="WDI_INDICATION_DELETE_PORT_COMPLETE" type="WDI_INDICATION_DELETE_PORT_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_START_AP_COMPLETE" type="WDI_INDICATION_START_AP_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_STOP_AP_COMPLETE" type="WDI_INDICATION_STOP_AP_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_STOP_AP" type="WDI_INDICATION_STOP_AP_PARAMETERS" description="Parameters for Stop AP reason" direction="FromIhv" >
      <containerRef id="WDI_TLV_INDICATION_STOP_AP" name="Reason" type="UINT32Container" />
    </message>

    <message commandId="WDI_INDICATION_CAN_SUSTAIN_AP" type="WDI_INDICATION_CAN_SUSTAIN_AP_PARAMETERS" description="Parameters for Stop AP reason" direction="FromIhv" >
      <containerRef id="WDI_TLV_INDICATION_CAN_SUSTAIN_AP" name="Reason" type="UINT32Container" />
    </message>

    <message commandId="WDI_INDICATION_SEND_AP_ASSOCIATION_RESPONSE_COMPLETE" type="WDI_INDICATION_SEND_AP_ASSOCIATION_RESPONSE_COMPLETE_PARAMETERS" description="Information from device about association response frame that was sent out." direction="FromIhv">
      <containerRef id="WDI_TLV_ASSOCIATION_RESPONSE_RESULT_PARAMETERS" name="AssocResponseResult" type="AssocResponseResultParametersContainer" />
      <containerRef id="WDI_TLV_ASSOCIATION_RESPONSE_FRAME" name="AssocResponseFrame" type="ByteBlob" />
      <containerRef id="WDI_TLV_BEACON_IES" name="BeaconIEs" type="ByteBlob" />
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ActivePhyList" type="PhyTypeListContainer"  versionAdded="WDI_VERSION_1_1_5" />
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ActivePhyList" type="PhyTypeListContainer"  optional="true" versionRemoved="WDI_VERSION_1_1_5" />
    </message>

    <message commandId="74" type="" description="reserved" direction="Both" />

    <message commandId="WDI_INDICATION_ASSOCIATION_RESULT" type="WDI_INDICATION_ASSOCIATION_RESULT_LIST" description="List of association completion entries." direction="FromIhv">
      <containerRef id="WDI_TLV_ASSOCIATION_RESULT" name="AssociationResults" type="AssociationResultsContainer" multiContainer="true" optional="false" />
    </message>

    <message commandId="WDI_GET_AUTO_POWER_SAVE" type="WDI_GET_AUTO_POWER_SAVE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId="WDI_GET_AUTO_POWER_SAVE" type="WDI_GET_AUTO_POWER_SAVE_RESULTS" description="Parameters for Auto power save" direction="FromIhv" >
      <containerRef id="WDI_TLV_GET_AUTO_POWER_SAVE" name="AutoPowerSaveParameters" type="AutoPowerSaveParametersContainer"/>
    </message>

    <message commandId="WDI_SET_ADD_WOL_PATTERN" type="WDI_SET_ADD_WOL_PATTERN_PARAMETERS" description="Parameters for WDI_SET_ADD_WOL_PATTERN" direction="ToIhv" >
      <containerRef id="WDI_TLV_WAKE_PACKET_BITMAP_PATTERN" name="WakePacketPattern" type="WakePacketPatternContainer" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_WAKE_PACKET_MAGIC_PACKET" name="WakePacketMagicPacketPatternId" type="UINT32Container" optional="true" />
      <containerRef id="WDI_TLV_WAKE_PACKET_IPv4_TCP_SYNC" name="WakePacketIpv4TcpSync" type="WakeIPv4SyncContainer" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_WAKE_PACKET_IPv6_TCP_SYNC" name="WakePacketIpv6TcpSync" type="WakeIPv6SyncContainer" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_WAKE_PACKET_EAPOL_REQUEST_ID_MESSAGE" name="WakePacketEapolRequestIdPatternId" type="UINT32Container" optional="true" />
    </message>
    <message commandId="WDI_SET_ADD_WOL_PATTERN" type="WDI_SET_ADD_WOL_PATTERN_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_REMOVE_WOL_PATTERN" type="WDI_SET_REMOVE_WOL_PATTERN_PARAMETERS" description="Parameters for removing WOL pattern" direction="ToIhv" >
      <containerRef id="WDI_TLV_WAKE_PACKET_PATTERN_REMOVE" name="PatternId" type="UINT32Container" />
    </message>
    <message commandId="WDI_SET_REMOVE_WOL_PATTERN" type="WDI_SET_REMOVE_WOL_PATTERN_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_MULTICAST_LIST" type="WDI_SET_MULTICAST_LIST_PARAMETERS" description="Specifies the multicast address list for a given port" direction="ToIhv" >
      <containerRef id="WDI_TLV_MULTICAST_LIST" name="MulticastList" type="MacAddressListContainer" optional="true"/>
    </message>
    <message commandId="WDI_SET_MULTICAST_LIST" type="WDI_SET_MULTICAST_LIST_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_ADD_PM_PROTOCOL_OFFLOAD" type="WDI_SET_ADD_PM_PROTOCOL_OFFLOAD_PARAMETERS_PARAMETERS" description="Provide information to enable the device/firmware to implement these protocols while the main CPU is asleep" direction="ToIhv" >
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_IPv4ARP" name="ipv4ARPOffload" type="ipv4ARPOffloadContiner" optional ="true"/>
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_IPv6NS" name="ipv6ARPOffload" type="ipv6PMOffloadContainer" optional ="true"/>
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY" name="DOT11RSNREKeyOffload" type="DOT11RSNREKeyOffloadContainer" optional ="true" versionAdded="WDI_VERSION_1_1_6" />
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY" name="DOT11RSNREKeyOffload" type="DOT11RSNREKeyOffloadContainer_V1_1_5" optional ="true" versionRemoved="WDI_VERSION_1_1_6" />
    </message>
    <message commandId="WDI_SET_ADD_PM_PROTOCOL_OFFLOAD" type="WDI_SET_ADD_PM_PROTOCOL_OFFLOAD_PARAMETERS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_REMOVE_PM_PROTOCOL_OFFLOAD" type="WDI_SET_REMOVE_PM_PROTOCOL_OFFLOAD_PARAMETERS" description="The Remove command removes the offload by the ProtocolOffloadId, encapped in WDI_TLV_PM_PROTOCOL_OFFLOAD_REMOVE" direction="ToIhv" >
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_REMOVE" name="RemovePMOffload" type="UINT32Container" />
    </message>
    <message commandId="WDI_SET_REMOVE_PM_PROTOCOL_OFFLOAD" type="WDI_SET_REMOVE_PM_PROTOCOL_OFFLOAD_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_P2P_GROUP_OPERATING_CHANNEL" type="WDI_INDICATION_P2P_GROUP_OPERATING_CHANNEL_PARAMETERS" description="Operating channel indicated after joining/starting a P2P Group" direction="FromIhv">
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" name="Channel" type="WFDChannelContainer" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_INDICATE_REASON" name="IndicateReason" type="WFDChannelIndicateReasonContainer" />
      <containerRef id="WDI_TLV_AP_BAND_INFORMATION" name="APBandInformation" type="APBandInformationContainer" versionAdded="WDI_VERSION_1_1_4"/>
    </message>

    <message commandId="WDI_INDICATION_P2P_OPERATING_CHANNEL_ATTRIBUTES" type="WDI_INDICATION_P2P_OPERATING_CHANNEL_ATTRIBUTES_PARAMETERS" description="Operating channel attributes indicated during initialization, and on changes" direction="FromIhv" >
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" name="PreferredOperatingChannel" type="WFDChannelContainer" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_LIST_ATTRIBUTE" name="ChannelList" type="P2PChannelListContainer" />
      <containerRef id="WDI_TLV_P2P_LISTEN_CHANNEL" name="PreferredListenChannel" type="WFDChannelContainer" />
    </message>

    <message commandId="WDI_SET_ADAPTER_CONFIGURATION" type="WDI_SET_FIRMWARE_CONFIGURATION_PARAMETERS" description="Parameters to set adapter/firmware configuration" direction="ToIhv">
      <containerRef id="WDI_TLV_CONFIGURED_MAC_ADDRESS" name="MacAddress" optional="true" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_UNREACHABLE_DETECTION_THRESHOLD" name="UnreachableDetectionThreshold" optional="true" type="UINT32Container" />
      <containerRef id="WDI_TLV_P2P_GO_INTERNAL_RESET_POLICY" name="GroupOwnerResetPolicy" optional="true" type="GroupOwnerResetPolicyContainer" />
      <containerRef id="WDI_TLV_BAND_ID_LIST" name="DisallowedBandList" optional="true" type="BandIDListContainer"/>
      <containerRef id="WDI_TLV_LINK_QUALITY_BAR_MAP" name="LinkQualityBarMap" type="LinkQualityBarMapContainer" />
      <containerRef id="WDI_TLV_ADAPTER_NLO_SCAN_MODE" name="AdapterNloScanMode" type="AdapterNloScanModeContainer" optional="true"/>
      <containerRef id="WDI_TLV_PLDR_SUPPORT" name="PLDRSupport" type="BOOLContainer" versionAdded="WDI_VERSION_1_0_10"/>
    </message>
    <message commandId="WDI_SET_ADAPTER_CONFIGURATION" type="WDI_SET_FIRMWARE_CONFIGURATION_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_RECEIVE_COALESCING_MATCH_COUNT" type="WDI_GET_RECEIVE_COALESCING_MATCH_COUNT_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId="WDI_GET_RECEIVE_COALESCING_MATCH_COUNT" type="WDI_GET_RECEIVE_COALESCING_MATCH_COUNT_PARAMETERS" description="The TLV contains one UINT64 field of the variable with the number of packets that have matched receive filters on the network port." direction="FromIhv" >
      <containerRef id="WDI_TLV_COALESCING_FILTER_MATCH_COUNT" name="MatchCount" type="UINT64Container" />
    </message>

    <message commandId="WDI_SET_CLEAR_RECEIVE_COALESCING" type="WDI_SET_CLEAR_RECEIVE_COALESCING_PARAMETERS" description="Parameters for clearing Receive coalescing" direction="ToIhv" >
      <containerRef id="WDI_TLV_SET_CLEAR_RECEIVE_COALESCING" name="FilterId" type="UINT32Container" />
    </message>
    <message commandId="WDI_SET_CLEAR_RECEIVE_COALESCING" type="WDI_SET_CLEAR_RECEIVE_COALESCING_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_PM_PROTOCOL_OFFLOAD" type="WDI_GET_PM_PROTOCOL_OFFLOAD_PARAMETERS" description="PM Protocol offload" direction="ToIhv">
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_GET" name="GetPMOffload" type="UINT32Container" />
    </message>
    <message commandId="WDI_GET_PM_PROTOCOL_OFFLOAD" type="WDI_GET_PM_PROTOCOL_OFFLOAD_RESULTS" description="PM Protocol offload" direction="FromIhv">
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_IPv4ARP" name="ipv4ARPOffload" type="ipv4ARPOffloadContiner" optional ="true" />
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_IPv6NS" name="ipv6ARPOffload" type="ipv6PMOffloadContainer" optional ="true" />
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY" name="DOT11RSNREKeyOffload" type="DOT11RSNREKeyOffloadContainer" optional ="true" versionAdded="WDI_VERSION_1_1_6" />
      <containerRef id="WDI_TLV_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY" name="DOT11RSNREKeyOffload" type="DOT11RSNREKeyOffloadContainer_V1_1_5" optional ="true" versionRemoved="WDI_VERSION_1_1_6" />
    </message>

    <message commandId="WDI_SET_ADVERTISEMENT_INFORMATION" type="WDI_SET_ADVERTISEMENT_INFORMATION_PARAMETERS" description="Parameters for WDI_SET_ADVERTISEMENT_INFORMATION." direction="ToIhv">
      <containerRef id="WDI_TLV_ADDITIONAL_IES" name="AdditionalIEs" type="AdditionalIEs" optional="true"/>
      <containerRef id="WDI_TLV_P2P_DEVICE_INFO" name="DeviceInformation" type="P2PDeviceInfoContainer" optional="true"/>
      <containerRef id="WDI_TLV_P2P_DEVICE_CAPABILITY" name="DeviceCapability" type="P2PDeviceCapabilityContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_GROUP_OWNER_CAPABILITY" name="GroupOwnerCapability" type="P2PGroupOwnerCapabilityContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_SECONDARY_DEVICE_TYPE_LIST" name="SecondaryDeviceTypeList" type="P2PSecondaryDeviceTypeList" optional="true" />
      <containerRef id="WDI_TLV_P2P_ADVERTISED_SERVICES" name="AdvertisedServices" type="P2PAdvertisedServices" optional="true" />
    </message>
    <message commandId="WDI_SET_ADVERTISEMENT_INFORMATION" type="WDI_SET_ADVERTISEMENT_INFORMATION_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_CHANGE_OPERATION_MODE" type="WDI_TASK_CHANGE_OPERATION_MODE_PARAMETERS" description="This property configures the operation mode for the port." direction="ToIhv" >
      <containerRef id="WDI_TLV_OPERATION_MODE" name="OperationMode" type="OperationModeContainer" />
    </message>
    <message commandId="WDI_TASK_CHANGE_OPERATION_MODE" type="WDI_TASK_CHANGE_OPERATION_MODE_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_CHANGE_OPERATION_MODE_COMPLETE" type="WDI_INDICATION_CHANGE_OPERATION_MODE_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_DELETE_PEER_STATE" type="" description="reserved" direction="Both" />

    <message commandId="WDI_IHV_REQUEST" type="WDI_IHV_REQUEST_PARAMETERS" description="Parameters for WDI_IHV_ structures" direction="Both">
      <containerRef id="WDI_TLV_IHV_DATA" name="IHVData" type="ByteBlob" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_INDICATION_IHV_EVENT" type="WDI_INDICATION_IHV_EVENT_PARAMETERS" description="Parameters for WDI_IHV_ structures" direction="FromIhv">
      <containerRef id="WDI_TLV_IHV_DATA" name="IHVData" type="ByteBlob" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_INDICATION_OPEN_COMPLETE" type="WDI_INDICATION_OPEN_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_CLOSE_COMPLETE" type="WDI_INDICATION_CLOSE_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_SET_FLUSH_BSS_ENTRY" type="WDI_SET_FLUSH_BSS_ENTRY_PARAMETERS" description="No TLV data needed, header is sufficient" direction="Both" />

    <message commandId="WDI_INDICATION_ASSOCIATION_PARAMETERS_REQUEST" type="WDI_INDICATION_ASSOCIATION_PARAMS_REQUEST_PARAMETERS" description="The Wi-Fi adapter sends this indication to request the host for association parameters for a set of BSSIDs" direction="FromIhv" >
      <containerRef id="WDI_TLV_ASSOCIATION_PARAMETERS_REQUESTED_TYPE" name="AssociationParameterTypes" type="UINT16ListContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY" name="BSSEntryList" type="BSSEntryContainer" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_SET_ASSOCIATION_PARAMETERS" type="WDI_SET_ASSOCIATION_PARAMS_PARAMETERS" description="Specifies paramters that the adapter can use during association to a set of BSSIDs" direction="ToIhv" >
      <containerRef id="WDI_TLV_CONNECT_BSS_ENTRY" name="BSSEntryList" type="ConnectBSSEntryContainer" multiContainer="true" optional="false" />
    </message>
    <message commandId="WDI_SET_ASSOCIATION_PARAMETERS" type="WDI_SET_ASSOCIATION_PARAMS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_ROAM" type="WDI_TASK_ROAM_PARAMETERS" description="Parameters for Roam" direction="ToIhv" >
      <containerRef id="WDI_TLV_CONNECT_PARAMETERS" name="ConnectParameters" type="ConnectParametersContainer" optional="false" />
      <containerRef id="WDI_TLV_CONNECT_BSS_ENTRY" name="PreferredBSSEntryList" type="ConnectBSSEntryContainer" multiContainer="true" optional="false" />
    </message>
    <message commandId="WDI_TASK_ROAM" type="WDI_TASK_ROAM_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_ROAM_COMPLETE" type="WDI_INDICATION_ROAM_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_SEND_REQUEST_ACTION_FRAME" type="WDI_TASK_SEND_REQUEST_ACTION_FRAME_PARAMETERS" description="Action frame request parameters" direction="ToIhv">
      <containerRef id="WDI_TLV_SEND_ACTION_FRAME_REQUEST_PARAMETERS" name="RequestParams" type="SendActionFrameRequestParamsContainer"/>
      <containerRef id="WDI_TLV_ACTION_FRAME_BODY" name="ActionFrameBody" type="ByteBlob" />
    </message>
    <message commandId="WDI_TASK_SEND_REQUEST_ACTION_FRAME" type="WDI_TASK_SEND_REQUEST_ACTION_FRAME_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_ACTION_FRAME_RECEIVED" type="WDI_INDICATION_ACTION_FRAME_RECEIVED_PARAMETERS" description="Parameters for action frame received indication." direction="FromIhv">
      <containerRef id="WDI_TLV_BSSID" name="SourceAddress" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_BSS_ENTRY_CHANNEL_INFO" name="ChannelInfo" type="ChannelInfoContainer" />
      <containerRef id="WDI_TLV_ACTION_FRAME_BODY" name="ActionFrameBody" type="ByteBlob" />
    </message>

    <message commandId="WDI_INDICATION_TASK_OFFLOAD_CURRENT_CONFIG" type="WDI_INDICATION_TASK_OFFLOAD_CURRENT_CONFIG_PARAMETERS" description="Parameters for Task offload status" direction="FromIhv">
      <containerRef id="WDI_TLV_TCP_OFFLOAD_CAPABILITIES" name="TcpOffloadCapabilities" type="TcpOffloadCapabilitiesContainer" optional="true" />
    </message>

    <message commandId="WDI_TASK_SEND_RESPONSE_ACTION_FRAME" type="WDI_TASK_SEND_RESPONSE_ACTION_FRAME_PARAMETERS" description="Action frame response parameters" direction="ToIhv">
      <containerRef id="WDI_TLV_SEND_ACTION_FRAME_RESPONSE_PARAMETERS" name="ResponseParams" type="SendActionFrameRequestParamsContainer"/>
      <containerRef id="WDI_TLV_ACTION_FRAME_BODY" name="ActionFrameBody" type="ByteBlob" />
    </message>
    <message commandId="WDI_TASK_SEND_RESPONSE_ACTION_FRAME" type="WDI_TASK_SEND_RESPONSE_ACTION_FRAME_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_SEND_REQUEST_ACTION_FRAME_COMPLETE" type="WDI_INDICATION_SEND_REQUEST_ACTION_FRAME_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_SEND_RESPONSE_ACTION_FRAME_COMPLETE" type="WDI_INDICATION_SEND_RESPONSE_ACTION_FRAME_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_GET_NEXT_ACTION_FRAME_DIALOG_TOKEN" type="WDI_GET_NEXT_ACTION_FRAME_DIALOG_TOKEN_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId="WDI_GET_NEXT_ACTION_FRAME_DIALOG_TOKEN" type="WDI_GET_NEXT_ACTION_FRAME_DIALOG_TOKEN_PARAMETERS" description="Parameters for WDI_GET_NEXT_ACTION_FRAME_DIALOG_TOKEN" direction="FromIhv" >
      <containerRef id="WDI_TLV_NEXT_DIALOG_TOKEN" name="NextDialogToken" type="UINT8Container" />
    </message>

    <message commandId="WDI_SET_P2P_WPS_ENABLED" type="WDI_SET_P2P_WPS_ENABLED_PARAMETERS" description="WPS Registrar Enabled Parameter" direction="ToIhv" >
      <containerRef id="WDI_TLV_P2P_WPS_ENABLED" name="WPSEnabled" type="UINT8Container" optional="false" />
    </message>
    <message commandId="WDI_SET_P2P_WPS_ENABLED" type="WDI_SET_P2P_WPS_ENABLED_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_IHV" type="WDI_TASK_IHV_PARAMETERS" description="not implemented yet (ID:762509) - Parameters for WDI_TASK_IHV" direction="ToIhv" >
      <containerRef id="WDI_TLV_IHV_TASK_DEVICE_CONTEXT" name="IHVSpecificContext" type="ByteBlob" optional="true"/>
    </message>
    <message commandId="WDI_TASK_IHV" type="WDI_TASK_IHV_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_TASK_REQUEST_FTM" type="WDI_TASK_REQUEST_FTM_PARAMETERS" description="Request FTM parameters" direction="ToIhv">
      <containerRef id="WDI_TLV_FTM_REQUEST_TIMEOUT" name="FTMRequestTimeout" optional="false" type="UINT32Container" />
      <containerRef id="WDI_TLV_FTM_TARGET_BSS_ENTRY" name="FTMTargetList" optional="false" type="FTMTargetBSSEntryContainer" multiContainer="true" />
    </message>
    <message commandId="WDI_TASK_REQUEST_FTM" type="WDI_TASK_REQUEST_FTM_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_INDICATION_REQUEST_FTM_COMPLETE" type="WDI_INDICATION_REQUEST_FTM_COMPLETE_PARAMETERS" description="Responses for the FTM request" direction="FromIhv" >
      <containerRef id="WDI_TLV_FTM_RESPONSE" name="FTMResponseList" optional="false" type="FTMResponseContainer" multiContainer="true"/>
    </message>

    <message commandId="WDI_INDICATION_IHV_TASK_REQUEST" type="WDI_INDICATION_IHV_TASK_REQUEST_PARAMETERS" description="not implemented yet (ID:762509) - Parameters for WDI_INDICATION_IHV_TASK_REQUEST" direction="FromIhv" >
      <containerRef id="WDI_TLV_IHV_TASK_REQUEST_PARAMETERS" name="RequestedPriority" type="RequestedIHVTaskPriorityContainer" />
      <containerRef id="WDI_TLV_IHV_TASK_DEVICE_CONTEXT" name="IHVSpecificContext" type="ByteBlob" optional="true"/>
    </message>

    <message commandId="WDI_INDICATION_IHV_TASK_COMPLETE" type="WDI_INDICATION_IHV_TASK_COMPLETE_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId="WDI_ABORT_TASK" type="WDI_TASK_ABORT_PARAMETERS" description="Parameters for abort task" direction="ToIhv">
      <containerRef id="WDI_TLV_CANCEL_PARAMETERS" name="CancelParameters" type="CancelParametersContainer"/>
    </message>
    <message commandId="WDI_ABORT_TASK" type="WDI_TASK_ABORT_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_SET_TCP_OFFLOAD_PARAMETERS" type ="WDI_SET_TCP_OFFLOAD_PARAMS_PARAMETERS" description="Parameters for tcp offload" direction="ToIhv">
      <containerRef id ="WDI_TLV_TCP_SET_OFFLOAD_PARAMETERS" name="SetOffloadParameters" type="SetOffloadParametersContainer" />
    </message>
    <message commandId ="WDI_SET_TCP_OFFLOAD_PARAMETERS" type ="WDI_SET_TCP_OFFLOAD_PARAMS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_TCP_RSC_STATISTICS" type ="WDI_TCP_RSC_STATISTICS_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId ="WDI_TCP_RSC_STATISTICS" type ="WDI_TCP_RSC_STATISTICS_PARAMETERS" description="Parameters for Rsc Statistics" direction="FromIhv">
      <containerRef id ="WDI_TLV_TCP_RSC_STATISTICS_PARAMETERS" name="RscStatsParams" type="RscStatsParamsContainer" />
    </message>

    <message commandId ="WDI_SET_ENCAPSULATION_OFFLOAD" type ="WDI_SET_ENCAPSULATION_OFFLOAD_PARAMS_PARAMETERS" description="Parameters for setting the encapsulation offload" direction="ToIhv">
      <containerRef id ="WDI_TLV_SET_ENCAPSULATION_OFFLOAD_V4_PARAMETERS" name="EnabledV4" type="UINT8Container" />
      <containerRef id ="WDI_TLV_SET_ENCAPSULATION_OFFLOAD_V6_PARAMETERS" name="EnabledV6" type="UINT8Container" />
    </message>
    <message commandId ="WDI_SET_ENCAPSULATION_OFFLOAD" type ="WDI_SET_ENCAPSULATION_OFFLOAD_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_INDICATION_FT_ASSOC_PARAMS_NEEDED" type ="WDI_INDICATION_FT_ASSOC_PARAMS_NEEDED_PARAMETERS" description="Parameters, containing the Authentication response" direction="FromIhv">
      <containerRef id ="WDI_TLV_BSSID" name="BssId" type="MacAddressContainer" />
      <containerRef id ="WDI_TLV_FT_AUTH_REQUEST" name="AuthRequest" type="ByteBlob" />
      <containerRef id ="WDI_TLV_FT_AUTH_RESPONSE" name="AuthResponse" type="ByteBlob" />
    </message>

    <message commandId ="WDI_SET_FAST_BSS_TRANSITION_PARAMETERS" type ="WDI_SET_FAST_BSS_TRANSITION_PARAMETERS_COMMAND" description="Parameters for sending out association request" direction="ToIhv">
      <containerRef id ="WDI_TLV_STATUS" name="status" type="WdiStatusContainer" />
      <containerRef id ="WDI_TLV_FT_RSNIE" name="RSNIE" type="ByteBlob" optional ="true" />
      <containerRef id ="WDI_TLV_FT_MDE" name="MDE" type="ByteBlob" optional ="true" />
      <containerRef id ="WDI_TLV_FT_FTE" name="FTE" type="ByteBlob" optional ="true" />
    </message>

    <message commandId ="WDI_SET_FAST_BSS_TRANSITION_PARAMETERS" type ="WDI_SET_FAST_BSS_TRANSITION_PARAMETERS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED" type ="WDI_INDICATION_SAE_AUTH_PARAMS_NEEDED_PARAMETERS" description="Requesting the SAE Authentication parameters" direction="FromIhv">
      <containerRef id="WDI_TLV_BSSID" name="BssId" type="MacAddressContainer" />
      <containerRef id="WDI_TLV_SAE_INDICATION_TYPE" name="SAEIndicationType" type="SAEIndicationTypeContainer" />
      <containerRef id="WDI_TLV_SAE_COMMIT_RESPONSE" name="SAECommitResponse" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_SAE_CONFIRM_RESPONSE" name="SAEConfirmResponse" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_SAE_STATUS" name="SAEStatus" type="SAEStatusContainer" optional="true" />
    </message>

    <message commandId ="WDI_SET_SAE_AUTH_PARAMS" type ="WDI_SET_SAE_AUTH_PARAMS_COMMAND" description="Parameters for continuing SAE authentication with AP" direction="ToIhv">
      <containerRef id="WDI_TLV_BSSID" name="BssId" type="MacAddressContainer" />
      <containerRef id="WDI_TLV_SAE_REQUEST_TYPE" name="SAERequestType" type="SAERequestTypeContainer" />
      <containerRef id="WDI_TLV_SAE_COMMIT_REQUEST" name="SAECommitRequest" type="SAECommitRequestContainer" optional="true" />
      <containerRef id="WDI_TLV_SAE_CONFIRM_REQUEST" name="SAEConfirmRequest" type="SAEConfirmRequestContainer" optional="true" />
      <containerRef id="WDI_TLV_SAE_STATUS" name="SAEStatus" type="SAEStatusContainer" optional="true" />
    </message>

    <message commandId ="WDI_SET_SAE_AUTH_PARAMS" type ="WDI_SET_SAE_AUTH_PARAMS_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_INDICATION_FIRMWARE_STALLED" type="WDI_INDICATION_FIRMWARE_STALLED_PARAMETERS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_SET_NEIGHBOR_REPORT_ENTRIES" type ="WDI_SET_NEIGHBOR_REPORT_ENTRIES_PARAMETERS" description="Parameters for sending out Neighbor report entries" direction="ToIhv">
      <containerRef id ="WDI_TLV_NEIGHBOR_REPORT_ENTRY" name="NeighborReportEntry" type="NeighborReportEntryContainer" multiContainer="true" />
    </message>

    <message commandId ="WDI_SET_NEIGHBOR_REPORT_ENTRIES" type ="WDI_SET_NEIGHBOR_REPORT_ENTRIES_RESULTS" description="No TLV data needed, header is sufficient" direction="FromIhv" />

    <message commandId ="WDI_GET_SUPPORTED_DEVICE_SERVICES" type="WDI_GET_SUPPORTED_DEVICE_SERVICES_INPUTS" description="No TLV data needed, header is sufficient" direction="ToIhv" />
    <message commandId ="WDI_GET_SUPPORTED_DEVICE_SERVICES" type="WDI_GET_SUPPORTED_DEVICE_SERVICES_PARAMETERS" description="Parameters for WDI_GET_SUPPORTED_DEVICE_SERVICES" direction="FromIhv" >
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_GUID_LIST" name="DeviceServiceGUIDList" type="GuidListContainer" />
    </message>

    <message commandId ="WDI_DEVICE_SERVICE_COMMAND" type="WDI_DEVICE_SERVICE_COMMAND_INPUTS" description="Input parameters for WDI_DEVICE_SERVICE_COMMAND" direction="ToIhv" >
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_GUID" name="DeviceServiceGUID" type="GuidContainer" />
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_OPCODE" name="Opcode" type="UINT32Container" />
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_DATA_BLOB" name="Params" type="ByteBlob" multiContainer="true" optional="true" />
    </message>
    <message commandId ="WDI_DEVICE_SERVICE_COMMAND" type="WDI_DEVICE_SERVICE_COMMAND_PARAMETERS" description="Parameters for WDI_DEVICE_SERVICE_COMMAND" direction="FromIhv" >
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_DATA_BLOB" name="Params" type="ByteBlob" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_INDICATION_CIPHER_KEY_UPDATED" type="WDI_INDICATION_CIPHER_KEY_UPDATED_PARAMETERS" description="Parameters for Cipher Key Updated" direction="FromIhv" >
      <containerRef id="WDI_TLV_PM_PROTOCOL_RSN_OFFLOAD_KEYS" name="DOT11RSNREKeyOffload" type="DOT11RSNREKeyOffloadContainer" />
    </message>

     <message commandId ="WDI_INDICATION_DEVICE_SERVICE_EVENT" type="WDI_INDICATION_DEVICE_SERVICE_EVENT_PARAMETERS" description="Parameters for WDI_INDICATION_DEVICE_SERVICE_EVENT" direction="FromIhv" >
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_GUID" name="DeviceServiceGUID" type="GuidContainer" />
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_OPCODE" name="Opcode" type="UINT32Container" />
      <containerRef id ="WDI_TLV_DEVICE_SERVICE_PARAMS_DATA_BLOB" name="Params" type="ByteBlob" multiContainer="true" optional="true" />
    </message>

    <message commandId="WDI_SET_LOCATION_PRIVACY" type="WDI_SET_LOCATION_PRIVACY_PARAMETERS" description="Location Privacy Setting" direction="ToIhv" >
      <containerRef id="WDI_TLV_LOCATION_PRIVACY" name="LocationAllowed" type="UINT8Container" />
    </message>

    <message commandId="WDI_TEST_TASK" type="WDI_TASK_TEST_PARAMETERS" description="this is just a test" direction="Both">
      <!--Same Id, Optional Current, Optional Old, Multi Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST1" name="Newsocoomomc" type="Test" optional="true" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST1" name="Oldsocoomomc" type="Test" optional="true" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Optional Current, Optional Old, Multi Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST2" name="Newsocoomosc" type="Test" optional="true" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST2" name="Oldsocoomosc" type="Test" optional="true" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Optional Current, Optional Old, Single Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST3" name="Newsocoosomc" type="Test" optional="true" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST3" name="Oldsocoosomc" type="Test" optional="true" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Optional Current, Optional Old, Single Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST4" name="Newsocoososc" type="Test" optional="true" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST4" name="Oldsocoososc" type="Test" optional="true" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Optional Current, Reqd Old, Multi Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST5" name="Newsocromomc" type="Test" optional="true" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST5" name="Oldsocromomc" type="Test" optional="false" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Optional Current, Req Old, Multi Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST6" name="Newsocromosc" type="Test" optional="true" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST6" name="Oldsocromosc" type="Test" optional="false" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Optional Current, Reqd Old, Single Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST7" name="Newsocrosomc" type="Test" optional="true" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST7" name="Oldsocrosomc" type="Test" optional="false" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Optional Current, Reqd Old, Single Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST8" name="Newsocrososc" type="Test" optional="true" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST8" name="Oldsocrososc" type="Test" optional="false" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Reqd Current, Optional Old, Multi Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST9" name="Newsrcoomomc" type="Test" optional="false" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST9" name="Oldsrcoomomc" type="Test" optional="true" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Reqd Current, Optional Old, Multi Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST10" name="Newsrcoomosc" type="Test" optional="false" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST10" name="Oldsrcoomosc" type="Test" optional="true" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Reqd Current, Optional Old, Single Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST11" name="Newsrcoosomc" type="Test" optional="false" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST11" name="Oldsrcoosomc" type="Test" optional="true" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Reqd Current, Optional Old, Single Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST12" name="Newsrcoososc" type="TestAggregate" optional="false" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST12" name="Oldsrcoososc" type="TestAggregate" optional="true" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Reqd Current, Reqd Old, Multi Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST13" name="Newsrcromomc" type="Test" optional="false" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST13" name="Oldsrcromomc" type="Test" optional="false" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Reqd Current, Req Old, Multi Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST14" name="Newsrcromosc" type="Test" optional="false" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST14" name="Oldsrcromosc" type="Test" optional="false" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>

      <!--Same Id, Reqd Current, Reqd Old, Single Old, Multi Current" -->
      <containerRef id="WDI_TLV_TEST15" name="Newsrcrosomc" type="Test" optional="false" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST15" name="Oldsrcrosomc" type="Test" optional="false" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Same Id, Reqd Current, Reqd Old, Single Old, Single Current" -->
      <containerRef id="WDI_TLV_TEST16" name="Newsrcrososc" type="Test" optional="false" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>
      <containerRef id="WDI_TLV_TEST16" name="Oldsrcrososc" type="Test" optional="false" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>

      <!--New Id, Optional Current, Multi Current" -->
      <containerRef id="WDI_TLV_TEST17" name="Newnocmc" type="Test" optional="true" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <!--New Id, Optional Current, Single Current" -->
      <containerRef id="WDI_TLV_TEST18" name="Newnocsc" type="Test" optional="true" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>

      <!--New Id, Reqd Current, Multi Current" -->
      <containerRef id="WDI_TLV_TEST19" name="Newnrcmc" type="Test" optional="false" multiContainer="true" versionAdded="WDI_VERSION_LATEST"/>
      <!--New Id, OReqd Current, Single Current" -->
      <containerRef id="WDI_TLV_TEST20" name="Newnrcsc" type="Test" optional="false" multiContainer="false" versionAdded="WDI_VERSION_LATEST"/>

      <!--Old Id, Optional Old, Multi Old" -->
      <containerRef id="WDI_TLV_TEST21" name="Oldooomo" type="Test" optional="true" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Old Id, Optional Old, Single Old" -->
      <containerRef id="WDI_TLV_TEST22" name="Oldoooso" type="Test" optional="true" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>
      
      <!--Old Id, Reqd Old, Multi Old" -->
      <containerRef id="WDI_TLV_TEST23" name="Oldoromo" type="Test" optional="false" multiContainer="true" versionRemoved="WDI_VERSION_LATEST"/>
      <!--Old Id, Req Old, Single Old" -->
      <containerRef id="WDI_TLV_TEST24" name="Oldoroso" type="Test" optional="false" multiContainer="false" versionRemoved="WDI_VERSION_LATEST"/>

    </message>
  </messages>

  <containers>
    <!-- Common/Helpful containers -->

    <container name="WiFiSSID" description="Container for a single 802.11 SSID" isCollection="true" isZeroValid="true" type="WDI_SSID">
      <namedType name="SSID" type="UINT8" description="SSID Bytes" />
    </container>

    <container name="ByteBlob" description="Generic container for byte blobs." isCollection="true" type="WDI_BYTE_BLOB">
      <namedType name="Payload" type="UINT8" description="Byte blob payload." />
    </container>

    <container name="PrivateByteBlob" description="Generic container for PII byte blobs." isCollection="true" type="WDI_PRIVATE_BYTE_BLOB" isPrivate="true">
      <namedType name="Payload" type="UINT8" description="Byte blob payload." />
    </container>

    <container name="ASCIIString" description="Generic container for null-terminated ASCII strings." isCollection="true" type="WDI_STRING_Z">
      <namedType name="Payload" type="CHAR" description="string payload." />
    </container>

    <container name="MacAddressContainer" description="Container for a single MAC Address" type="WDI_MAC_ADDRESS_CONTAINER">
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="A Wi-Fi MAC Address."/>
    </container>

    <container name="MacAddressListContainer" description="Container for a MAC Address list" type="WDI_ADDRESS_LIST_CONTAINER" isCollection="true">
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="A Wi-Fi MAC Address."/>
    </container>

    <container name="NdisGuidContainer" description="Container for NDIS Guid" type="WDI_NDIS_GUID_CONTAINER">
      <namedType name="NdisGuid" type="NDIS_GUID" description="An NDIS_GUID entry."/>
    </container>

    <container name="RequestedIHVTaskPriorityContainer" description="Container for a IHV Task priority" type="WDI_IHV_TASK_PRIORITY_CONTAINER">
      <namedType name="PriorityValue" type="WDI_IHV_TASK_PRIORITY" description="Priority value"/>
    </container>

    <container name="INT32Container" description="Container for a single INT32" type="INT32_CONTAINER">
      <namedType name="Value" type="INT32" description="INT32 value."/>
    </container>

    <container name="UINT32Container" description="Container for a single UINT32" type="UINT32_CONTAINER">
      <namedType name="Value" type="UINT32" description="UINT32 value."/>
    </container>

    <container isCollection="true" name="UINT32ListContainer" description="Container for a list of UINT32" type="UINT32_LIST_CONTAINER">
      <namedType name="Value" type="UINT32" description="UINT32 value."/>
    </container>

    <container name="UINT64Container" description="Container for a single UINT64" type="UINT64_CONTAINER">
      <namedType name="Value" type="UINT64" description="UINT64 value."/>
    </container>

    <container name="OperationModeContainer" description="Container for a single WDI_OPERATION_MODE" type="WDI_OPERATION_MODE_CONTAINER">
      <namedType name="Value" type="WDI_OPERATION_MODE" description="WDI_OPERATION_MODE value."/>
    </container>

    <container name="UINT16Container" description="Container for a single UINT16" type="UINT16_CONTAINER">
      <namedType name="Value" type="UINT16" description="UINT16 value."/>
    </container>

    <container name="UINT16ListContainer" description="Container for a a list of UINT16" type="UINT16_LIST_CONTAINER" isCollection="true">
      <namedType name="Value" type="UINT16" description="UINT16 value."/>
    </container>

    <container name="UINT8Container" description="Container for a single UINT8" type="UINT8_CONTAINER">
      <namedType name="Value" type="UINT8" description="UINT8 value."/>
    </container>

    <container name="BOOLContainer" description="Container for a single BOOL" type="BOOL_CONTAINER">
      <namedType name="Value" type="bool" description="BOOL value."/>
    </container>

    <container name="RoamingReasonContainer" description="Container for roaming needed indication" type="WDI_ROAMING_NEEDED_CONTAINER">
      <namedType name="AssociationStatus" type="WDI_ASSOC_STATUS" description="The reason for the roam trigger. When a WDI_TASK_ROAM is triggered, this reason is forwarded to it."/>
    </container>

    <container name="ConnectionQualityContainer" description="Container for Desired Wi-Fi Connection Quality Hint" type="WDI_CONNECTION_QUALITY_CONTAINER">
      <namedType name="ConnectionQualityHint" type="WDI_CONNECTION_QUALITY_HINT" description="Desired Wi-Fi Connection Quality Hint."/>
    </container>

    <container name="SAEIndicationTypeContainer" description="Container for SAE indication type" type="WDI_SAE_INDICATION_TYPE_CONTAINER">
      <namedType name="IndicationType" type="WDI_SAE_INDICATION_TYPE" description="SAE Indication type."/>
    </container>

    <container name="SAERequestTypeContainer" description="Container for SAE request type" type="WDI_SAE_REQUEST_TYPE_CONTAINER">
      <namedType name="RequestType" type="WDI_SAE_REQUEST_TYPE" description="SAE Request type."/>
    </container>

    <container name="SAEStatusContainer" description="Container for SAE status" type="WDI_SAE_STATUS_CONTAINER">
      <namedType name="RequestType" type="WDI_SAE_STATUS" description="SAE Status."/>
    </container>

    <container
      name="RscStatsParamsContainer"
      description="Container for a Rsc Statistics."
      type="WDI_TCP_RSC_STATISTICS_CONTAINER">
      <groupRef name="RscStatistics" ref="RscStatsStruct" description="Rsc Statistics"/>
    </container>

    <container
      name="WFDChannelContainer"
      description="Container for a Wi-Fi Direct channel."
      type="WDI_P2P_CHANNEL_CONTAINER">
      <groupRef name="Channel" ref="WFDChannelStruct" description="Wi-Fi Direct Channel."/>
    </container>

    <container
      name="WFDChannelIndicateReasonContainer"
      description="Container for Channel Indication Reason."
      type="WDI_P2P_CHANNEL_INDICATE_REASON_CONTAINER">
      <namedType name="Reason" type="WDI_P2P_CHANNEL_INDICATE_REASON" description="WFD Channel Indication Reason."/>
    </container>

    <container
      name="LowLatencyCQParametersContainer"
      description="Container for low latency connection quality parameters."
      type="WDI_LOW_LATENCY_CONNECTION_QUALITY_PARAMETERS_CONTAINER">
      <groupRef name="Parameters" ref="LowLatencyCQParamsStruct" description="Low latency connection quality Parameters." />
    </container>

    <container
      name="PMKNameContainer"
      description="Container for PMKName"
      type="WDI_TYPE_PMK_NAME_CONTAINER">
      <groupRef name="Value" ref="pmknamestruct" description="PMKName" />
    </container>

    <container name="WdiStatusContainer" description="Container for WDI_STATUS" type="WDI_STATUS_CONTAINER">
      <namedType name="Status" type="NDIS_STATUS" description="A WDI_STATUS."/>
    </container>

    <!-- Start AP Settings -->

    <container
      name="StartAPParametersContainer"
      description="Container for static parameters for starting an access point."
      type="WDI_START_AP_PARAMETERS_CONTAINER">
      <groupRef name="Parameters" ref="StartAPParamsStruct" description="Static AP Parameters." />
    </container>

    <container
      name="StartAPParametersContainerV1_0_1"
      description="Container for static parameters for starting an access point."
      type="WDI_START_AP_PARAMETERS_CONTAINER_V1_0_1">
      <groupRef name="Parameters" ref="StartAPParamsStructV1_0_1" description="Static AP Parameters." />
    </container>

    <container
      name="BSSIDInfoContainer"
      description="Container for BSSID Info (Neighbor report entries)"
      type="WDI_BSSID_INFO_CONTAINER">
      <groupRef name="BssIdInfo" ref="BssIdInfoStruct" description="Structure for BSSID Info" />
    </container>

    <container
      name="AuthAlgoList"
      description="Container for an authentication algorithm list."
      type="WDI_AUTH_ALGORITHM_LIST_CONTAINER"
      isCollection="true">
      <namedType name="AuthAlgos" type="WDI_AUTH_ALGORITHM" description="List of authentication algorithms." />
    </container>

    <container
      name="CipherAlgoList"
      description="Container for an authentication algorithm list."
      type="WDI_CIPHER_ALGORITHM_LIST_CONTAINER"
      isCollection="true">
      <namedType name="CipherAlgos" type="WDI_CIPHER_ALGORITHM" description="List of cipher algorithms." />
    </container>

    <container name="PhyTypeContainer" type="WDI_PHY_TYPE_CONTAINER" description="Container for phy type.">
      <namedType name="PhyType" type="WDI_PHY_TYPE" description="PHY types" />
    </container>

    <!-- Advertisement Settings -->

    <aggregateContainer name="AdditionalIEs" description="Container for additional IE settings." type="WDI_ADDITIONAL_IES_CONTAINER">
      <containerRef id="WDI_TLV_ADDITIONAL_BEACON_IES" name="AdditionalBeaconIEs" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_ADDITIONAL_PROBE_RESPONSE_IES" name="AdditionalProbeResponseIEs" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_ADDITIONAL_PROBE_REQUEST_DEFAULT_IES" name="AdditionalProbeRequestDefaultIEs" type="ByteBlob" optional="true" />
    </aggregateContainer>

    <container name="P2PDeviceInfoParameters" description="Container for P2P Device info static parameters." type="WDI_P2P_DEVICE_INFO_PARAMETERS_CONTAINER">
      <groupRef ref="P2PDeviceInfoParametersStruct" name="DeviceInfoParameters" description="Static device info parameters."/>
    </container>

    <aggregateContainer name="P2PDeviceInfoContainer" description="Container for P2P Device Info." type="WDI_P2P_DEVICE_INFO_CONTAINER">
      <containerRef id="WDI_TLV_P2P_DEVICE_INFO_PARAMETERS" name="DeviceInfoParameters" type="P2PDeviceInfoParameters" />
      <containerRef id="WDI_TLV_P2P_DEVICE_NAME" name="DeviceName" type="ByteBlob" />
    </aggregateContainer>

    <aggregateContainer name="NeighborReportEntryContainer" description="Container for Neighbor reports." type="WDI_NEIGHBOR_REPORT_ENTRY_CONTAINER">
      <containerRef id="WDI_TLV_BSSID" name="Bssid" type="MacAddressContainer" />
      <containerRef id="WDI_TLV_BSSID_INFO" name="BSSIDInfo" type="BSSIDInfoContainer" />
      <containerRef id="WDI_TLV_OPERATING_CLASS" name="OperatingClass" type="UINT8Container" />
      <containerRef id="WDI_TLV_CHANNEL_NUMBER" name="ChannelNumber" type="UINT8Container" />
      <containerRef id="WDI_TLV_PHY_TYPE" name="PhyType" type="PhyTypeContainer" />
    </aggregateContainer>

    <container name="P2PDeviceCapabilityContainer" description="Container for P2P Device Capability." type="WDI_P2P_DEVICE_CAPABILITY_CONTAINER">
      <groupRef ref="P2PDeviceCapabilityStruct" name="DeviceCapability" description="Static device capability settings."/>
    </container>

    <container name="P2PGroupOwnerCapabilityContainer" description="Container for P2P Device Capability." type="WDI_P2P_GROUP_OWNER_CAPABILITY_CONTAINER">
      <groupRef ref="P2PGroupOwnerCapabilityStruct" name="GroupOwnerCapability" description="Static group owner capability settings."/>
    </container>

    <container name="P2PSecondaryDeviceTypeList" type="WDI_P2P_SECONDARY_DEVICE_TYPE_CONTAINER" isCollection="true" isZeroValid="true" description="Container for secondary device type list.">
      <groupRef ref="WFDDeviceType" name="SecondaryDeviceTypes" description="Secondary Device Type List"/>
    </container>

    <container name="ServiceNameHashContainer" description="Container for a Service Name hash" type="WDI_P2P_SERVICE_NAME_HASH_CONTAINER">
      <namedType name="ServiceNameHash" type="WDI_P2P_SERVICE_NAME_HASH" description="Service Name Hash" />
    </container>

    <aggregateContainer name="ServiceInformationDiscoveryEntryContainer" type="WDI_P2P_SERVICE_INFORMATION_DISCOVERY_ENTRY_CONTAINER" description="Container for service information discovery entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME" name="ServiceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME_HASH" name="ServiceNameHash" type="ServiceNameHashContainer" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION" name="ServiceInformation" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_UPDATE_INDICATOR" name="ServiceUpdateIndicator" type="UINT16Container" versionAdded="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_SERVICE_UPDATE_INDICATOR" name="ServiceUpdateIndicator" type="UINT16Container" optional="true" versionRemoved="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_SERVICE_TRANSACTION_ID" name="ServiceTransactionId" type="UINT8Container" versionAdded="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_SERVICE_TRANSACTION_ID" name="ServiceTransactionId" type="UINT8Container" optional="true" versionRemoved="WDI_VERSION_1_1_4" />
    </aggregateContainer>

    <aggregateContainer name="ASP2ServiceInformationDiscoveryEntryContainerV1_0_20" type="WDI_P2P_ASP2_SERVICE_INFORMATION_DISCOVERY_ENTRY_CONTAINERV1_0_20" description="Container for ASP2 service information discovery entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME" name="ServiceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_INSTANCE_NAME" name="InstanceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION" name="ServiceInformation" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_UPDATE_INDICATOR" name="ServiceUpdateIndicator" type="UINT16Container" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_TRANSACTION_ID" name="ServiceTransactionId" type="UINT8Container" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="P2PDiscoveredServiceEntry" type="WDI_P2P_DISCOVERED_SERVICE_ENTRY_CONTAINER" description="Container for discovered service entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME" name="ServiceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION" name="ServiceInformation" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_STATUS" name="ServiceStatus" type="UINT8Container" />
      <containerRef id="WDI_TLV_P2P_ADVERTISEMENT_ID" name="AdvertisementID" type="UINT32Container" />
      <containerRef id="WDI_TLV_P2P_CONFIG_METHODS" name="ConfigurationMethods" type="UINT16Container" />
    </aggregateContainer>

    <aggregateContainer name="P2PAdvertisedServiceEntry" type="WDI_P2P_ADVERTISED_SERVICE_ENTRY_CONTAINER" description="Container for advertised service entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME" name="ServiceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME_HASH" name="ServiceNameHash" type="ServiceNameHashContainer" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION" name="ServiceInformation" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_STATUS" name="ServiceStatus" type="UINT8Container" />
      <containerRef id="WDI_TLV_P2P_ADVERTISEMENT_ID" name="AdvertisementID" type="UINT32Container" />
      <containerRef id="WDI_TLV_P2P_CONFIG_METHODS" name="ConfigurationMethods" type="UINT16Container" />
    </aggregateContainer>

    <aggregateContainer name="ASP2AdvertisedServiceEntryV1_0_20" type="WDI_P2P_ASP2_ADVERTISED_SERVICE_ENTRY_CONTAINERV1_0_20" description="Container for ASP2 advertised service entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_TYPE" name="ServiceType" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_TYPE_HASH" name="ServiceTypeHash" type="ServiceNameHashContainer" />
      <containerRef id="WDI_TLV_P2P_INSTANCE_NAME" name="InstanceName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_INSTANCE_NAME_HASH" name="InstanceNameHash" type="ServiceNameHashContainer" />
      <containerRef id="WDI_TLV_P2P_SERVICE_INFORMATION" name="ServiceInformation" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_STATUS" name="ServiceStatus" type="UINT8Container" />
      <containerRef id="WDI_TLV_P2P_ADVERTISEMENT_ID" name="AdvertisementID" type="UINT32Container" />
      <containerRef id="WDI_TLV_P2P_CONFIG_METHODS" name="ConfigurationMethods" type="UINT16Container" />
    </aggregateContainer>

    <aggregateContainer name="P2PAdvertisedPrefixEntry" type="WDI_P2P_ADVERTISED_PREFIX_ENTRY_CONTAINER" description="Container for advertised prefix entry.">
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME" name="PrefixName" type="ByteBlob" />
      <containerRef id="WDI_TLV_P2P_SERVICE_NAME_HASH" name="ServicePrefixHash" type="ServiceNameHashContainer" />
    </aggregateContainer>

    <aggregateContainer name="P2PAdvertisedServices" type="WDI_P2P_ADVERTISED_SERVICES_CONTAINER" description="Container for advertised services.">
      <containerRef id="WDI_TLV_P2P_ADVERTISED_SERVICE_ENTRY" name="ServiceEntry" type="P2PAdvertisedServiceEntry" multiContainer="true" optional="true" />
      <containerRef id="WDI_TLV_P2P_ASP2_ADVERTISED_SERVICE_ENTRY" name="ASP2ServiceEntry" type="ASP2AdvertisedServiceEntryV1_0_20" multiContainer="true" optional="true" versionAdded="WDI_VERSION_1_0_20" versionRemoved="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_ADVERTISED_PREFIX_ENTRY" name="ServicePrefix" type="P2PAdvertisedPrefixEntry" multiContainer="true" optional="true" versionRemoved="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_P2P_SERVICE_UPDATE_INDICATOR" name="ServiceUpdateIndicator" type="UINT16Container" />
    </aggregateContainer>

    <!-- P2P Listen State -->

    <container name="P2PListenStateContainer" description="Container for P2P Listen State setting." type="WDI_P2P_LISTEN_STATE_CONTAINER">
      <namedType name="ListenState" type="WDI_P2P_LISTEN_STATE" description="P2P Listen State."/>
    </container>

    <!-- P2P Discover -->

    <container name="P2PDiscoverModeContainer" type="WDI_P2P_DISCOVER_MODE_CONTAINER" description="Container for discover mode setting.">
      <groupRef ref="P2PDiscoverModeStruct" name="DiscoverMode" description="Discover Mode." />
    </container>

    <container name="P2PBackgroundDiscoverModeContainer" type="WDI_P2P_BACKGROUND_DISCOVER_MODE_CONTAINER" description="Container for background discover mode setting.">
      <groupRef ref="P2PBackgroundDiscoverModeStruct" name="DiscoverMode" description="Background Discover Mode." />
    </container>

    <container name="ScanDwellTimeContainer" type="WDI_SCAN_DWELL_TIME_CONTAINER" description="Container for discover mode setting.">
      <groupRef ref="ScanDwellTimeStruct" name="DwellTime" description="Dwell Time." />
    </container>

    <container isCollection="true" name="ChannelListContainer" type="WDI_CHANNEL_LIST_CONTAINER" description="Container for lists of channels, (i.e. LIST&lt;WDI_CHANNEL_NUMBER&gt;)">
      <namedType type="WDI_CHANNEL_NUMBER" name="ChannelList" description="Channel Number List" />
    </container>

    <container name="BandIDContainer" type="WDI_BAND_ID_CONTAINER" description="Container for Band ID.">
      <namedType type="WDI_BAND_ID" name="BandID" description="Band ID (defined by device)"/>
    </container>

    <container isCollection="true" name="BandIDListContainer" type="WDI_BAND_ID_LIST_CONTAINER" description="Container for list of Band IDs.">
      <namedType type="WDI_BAND_ID" name="BandID" description="Band ID (defined by device)"/>
    </container>

    <aggregateContainer name="APBandChannelListContainer" type="WDI_AP_BAND_CHANNEL_LIST_CONTAINER" description="Container for AP band + channel information">
      <containerRef id="WDI_TLV_BANDID" name="BandID" type="BandIDContainer" />
      <containerRef id="WDI_TLV_CHANNEL_INFO_LIST" name="ChannelList" type="ChannelListContainer" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="ScanBandChannelListContainer" type="WDI_BAND_CHANNEL_LIST_CONTAINER" description="Container for band + channel information">
      <containerRef id="WDI_TLV_BANDID" name="BandID" type="BandIDContainer" />
      <containerRef id="WDI_TLV_CHANNEL_INFO_LIST" name="ChannelList" type="ChannelListContainer" />
    </aggregateContainer>

    <aggregateContainer name="APBandInformationContainer" type="WDI_AP_BAND_INFORMATION_CONTAINER" description="Container for AP band + channel information">
      <containerRef id="WDI_TLV_BANDID" name="BandID" type="BandIDContainer" />
      <containerRef id="WDI_TLV_OPERATING_IN_PBSS" name="IsPCPinPBSS" type="UINT8Container" />
    </aggregateContainer>

    <container name="SignalInfoContainer" type="WDI_SIGNAL_INFO_CONTAINER" description="Container for signal information">
      <groupRef ref="SignalInfoStruct" name="SignalInfo" description="Signal information"/>
    </container>

    <container name="ChannelInfoContainer" type="WDI_CHANNEL_INFO_CONTAINER" description="Container for BSS Entry Channel Info">
      <groupRef ref="BSSEntryChannelInfoStruct" name="ChannelInfo" description="Channel information"/>
    </container>

    <aggregateContainer name="SixGHzScanBandChannelListContainer" type="WDI_6_GHZ_BAND_CHANNEL_LIST_CONTAINER" description="Container for channel information in 6 GHz band">
      <containerRef id="WDI_TLV_BSSID" name="Bssid" type="MacAddressContainer" />
      <containerRef id="WDI_TLV_CHANNEL_NUMBER" name="ChannelNumber" type="UINT8Container" />
      <containerRef id="WDI_TLV_BSS_ENTRY_CHANNEL_INFO" name="ColocatedAP" type="ChannelInfoContainer" optional="true" />
    </aggregateContainer>

    <container name="BSSEntryAgeInfoContainer" type="WDI_AGE_INFO_CONTAINER" description="Container for BSS Entry Age Info">
      <groupRef ref="BSSEntryAgeInfoStruct" name="BSSEntryAgeInfo" description="BSS entry age information"/>
    </container>    

    <container name="LinkQualityBarMapContainer" type="WDI_LINK_QUALITY_BAR_MAP_CONTAINER" description="Container for mapping signal strength bars with link quality" isCollection="true">
      <groupRef ref="LinkQualityBarMapStruct" name="LinkQualityBarMap" description="Map of Signal strength bar to link quality"/>
    </container>

    <container name="AdapterNloScanModeContainer" type="WDI_ADAPTER_NLO_SCAN_MODE_CONTAINER" description="Container for defining NLO scan mode (Active/Passive)">
      <namedType type="WDI_SCAN_TYPE" name="NloScanMode" description="NLO Scan Mode (E.g: Active or passive)"/>
    </container>

    <aggregateContainer name="BSSEntryContainer" type="WDI_BSS_ENTRY_CONTAINER" description="Container for BSS Entry Information">
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_PROBE_RESPONSE_FRAME" name="ProbeResponseFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BEACON_FRAME" name="BeaconFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BSS_ENTRY_SIGNAL_INFO" name="SignalInfo" type="SignalInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_CHANNEL_INFO" name="ChannelInfo" type="ChannelInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT" name="DeviceSpecificContext" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BSS_ENTRY_AGE_INFO" name="EntryAgeInfo" type="BSSEntryAgeInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_P2P_DISCOVERED_SERVICE_ENTRY" name="P2PDiscoveredServiceEntry" optional="true" type="P2PDiscoveredServiceEntry" multiContainer="true" />
    </aggregateContainer>

    <container name="P2PListenDurationContainer" type="WDI_P2P_LISTEN_DURATION_CONTAINER" description="Container for P2P Listen Duration.">
      <groupRef ref="P2PListenDurationStruct" name="ListenDuration" description="Parameters for P2P Listen Duration." />
    </container>

    <aggregateContainer name="DiscoveryChannelSettingsContainer" type="WDI_P2P_DISCOVERY_CHANNEL_SETTINGS_CONTAINER" description="Container for Discovery Channel Settings.">
      <containerRef id="WDI_TLV_P2P_LISTEN_DURATION" name="ListenDuration" type="P2PListenDurationContainer"/>
      <containerRef id="WDI_TLV_BAND_CHANNEL" name="BandChannelList" type="ScanBandChannelListContainer" multiContainer="true" />
    </aggregateContainer>

    <!-- Action Frames -->
    <container name="SendActionFrameRequestParamsContainer" type="WDI_SEND_ACTION_FRAME_REQUEST_PARAMETERS_CONTAINER" description="Container for Action Frame Request Parameters.">
      <groupRef ref="SendActionFrameRequestParamsStruct" name="RequestParams" description="Action Frame Request Parameters" />
    </container>

    <!-- P2P Action Frames -->
    <container name="P2PSendActionFrameRequestParamsContainer" type="WDI_P2P_SEND_ACTION_FRAME_REQUEST_PARAMETERS_CONTAINER" description="Container for Static Action Frame Request Parameters.">
      <groupRef ref="P2PSendActionFrameRequestParamsStruct" name="RequestParams" description="Action Frame Request Parameters" />
    </container>

    <container name="P2PGONegotiationRequestParamsContainer" type="WDI_P2P_GO_NEGOTIATION_REQUEST_PARAMETERS_CONTAINER" description="Container for GO Negotiation Request Static Parameters.">
      <groupRef ref="GONegotiationRequestParamsStruct" name="RequestParams" description="GO Negotiation Request Parameters"/>
    </container>

    <aggregateContainer name="P2PGONegotiationRequestInfoContainer" type="WDI_P2P_GO_NEGOTIATION_REQUEST_INFO_CONTAINER" description="Generic container for GO Negotiation Request-related containers.">
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_REQUEST_PARAMETERS" name="RequestParams" type="P2PGONegotiationRequestParamsContainer" />
      <containerRef id="WDI_TLV_P2P_LISTEN_CHANNEL" name="RemoteListenChannel" type="WFDChannelContainer" optional="true"/>
    </aggregateContainer>

    <container name="P2PInvitationRequestParamsContainer" type="WDI_P2P_INVITATION_REQUEST_PARAMETERS_CONTAINER" description="Container for Invitation Request Static Parameters.">
      <groupRef ref="P2PInvitationRequestParamsStruct" name="RequestParams" description="Invitation Request Parameters"/>
    </container>

    <aggregateContainer name="P2PGroupIDContainer" type="WDI_P2P_GROUP_ID" description="Container for P2P Group ID">
      <containerRef id="WDI_TLV_P2P_DEVICE_ADDRESS" name="DeviceAddress" type="MacAddressContainer" />
      <containerRef id="WDI_TLV_SSID" name="GroupSSID" type="WiFiSSID" />
    </aggregateContainer>

    <aggregateContainer name="P2PInvitationRequestInfoContainer" type="WDI_P2P_INVITATION_REQUEST_INFO_CONTAINER" description="Generic container for Invitation Request-related containers.">
      <containerRef id="WDI_TLV_P2P_INVITATION_REQUEST_PARAMETERS" type="P2PInvitationRequestParamsContainer" name="RequestParams" />
      <containerRef id="WDI_TLV_P2P_GROUP_BSSID" type="MacAddressContainer" name="GroupBSSID" optional="true" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" type="WFDChannelContainer" name="OperatingChannel" optional="true" />
      <containerRef id="WDI_TLV_P2P_GROUP_ID" type="P2PGroupIDContainer" name="GroupID" />
    </aggregateContainer>

    <container name="P2PProvDiscRequestParamsContainer" type="WDI_P2P_PROVISION_DISCOVERY_REQUEST_PARAMETERS_CONTAINER" description="Container for Provision Discovery Request Static Parameters.">
      <groupRef ref="P2PProvDiscRequestParamsStruct" name="RequestParams" description="Provision Discovery Request Parameters"/>
    </container>

    <container name="P2PProvDiscResponseParamsContainer" type="WDI_P2P_PROVISION_DISCOVERY_RESPONSE_PARAMETERS_CONTAINER" description="Container for Provision Discovery Response Static Parameters.">
      <groupRef ref="P2PProvDiscResponseParamsStruct" name="ResponseParams" description="Provision Discovery Response Parameters"/>
    </container>

      <container name="P2PProvServiceAttributesContainer" type="WDI_P2P_PROVISION_SERVICE_ATTRIBUTES_CONTAINER" description="Container for Provision Service Attributes.">
      <groupRef ref="P2PProvServiceAttributesStruct" name="ServiceAttributes" description="Provision Service Attributes"/>
    </container>

    <aggregateContainer name="P2PProvDiscRequestInfoContainer" type="WDI_P2P_PROVISION_DISCOVERY_REQUEST_INFO_CONTAINER" description="Container for Provision Discovery Request.">
      <containerRef id="WDI_TLV_P2P_PROVISION_DISCOVERY_REQUEST_PARAMETERS" type="P2PProvDiscRequestParamsContainer" name="RequestParams" />
      <containerRef id="WDI_TLV_P2P_GROUP_ID" type="P2PGroupIDContainer" name="GroupID" optional="true" />
      <containerRef id="WDI_TLV_P2P_PROVISION_SERVICE_ATTRIBUTES" type="P2PProvServiceAttributesContainer" name="ServiceAttributes" optional="true" />
      <containerRef id="WDI_TLV_P2P_PERSISTENT_GROUP_ID" type="P2PGroupIDContainer" name="PersistentGroupID" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_SESSION_INFO" name="ServiceSessionInfo" type="ByteBlob" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="P2PProvDiscResponseInfoContainer" type="WDI_P2P_PROVISION_DISCOVERY_RESPONSE_INFO_CONTAINER" description="Container for Provision Discovery Response.">
      <containerRef id="WDI_TLV_P2P_PROVISION_DISCOVERY_RESPONSE_PARAMETERS" type="P2PProvDiscResponseParamsContainer" name="ResponseParams" />
      <containerRef id="WDI_TLV_P2P_PROVISION_SERVICE_ATTRIBUTES" type="P2PProvServiceAttributesContainer" name="ServiceAttributes" optional="true" />
      <containerRef id="WDI_TLV_P2P_GROUP_ID" type="P2PGroupIDContainer" name="GroupID" optional="true" />
      <containerRef id="WDI_TLV_P2P_PERSISTENT_GROUP_ID" type="P2PGroupIDContainer" name="PersistentGroupID" optional="true" />
      <containerRef id="WDI_TLV_P2P_SERVICE_SESSION_INFO" name="ServiceSessionInfo" type="ByteBlob" optional="true" />
    </aggregateContainer>

    <container name="P2PSendActionFrameResponseParamsContainer" type="WDI_P2P_SEND_ACTION_FRAME_RESPONSE_PARAMETERS_CONTAINER" description="Container for static action frame response parameters.">
      <groupRef name="ResponseParams" ref="P2PSendActionFrameResponseParamsStruct" description="Static action frame response params."/>
    </container>

    <container name="P2PGONegotiationResponseParamsContainer" type="WDI_P2P_GO_NEGOTIATION_RESPONSE_PARAMETERS_CONTAINER" description="Container for static GO Negotiation Response parameters.">
      <groupRef ref="P2PGONegotiationResponseParamsStruct" name="ResponseParams" description="Static incoming GO Negotiation Response parameters." />
    </container>

    <container name="ipv4ARPOffloadContiner" type="WDI_PM_PROTOCOL_OFFLOAD_IPv4ARP_CONTAINER" description="Container for ipv4 ARP PM protocol offload.">
      <groupRef ref="ipv4PmProtocolOffloadStruct" name="ipv4PmProtocolOffload" description="Parameters for PM protocol offload." />
    </container>

    <container name="ipv6PMOffloadContainer" type="WDI_PM_PROTOCOL_OFFLOAD_IPv6NS_CONTAINER" description="Container for ipv6 NS PM protocol offload.">
      <groupRef ref="ipv6PMOffloadStruct" name="ipv6ARPOffload" description="Parameters for PM protocol offload" />
    </container>

    <container name="DOT11RSNREKeyOffloadContainer_V1_1_5" type="WDI_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY_CONTAINER_V1_1_5" description="Container for 802.11 RSN PM protocol offload.">
      <groupRef ref="DOT11RSNREKeyOffloadStruct" name="DOT11RSNREKeyOffload" description="Parameters for PM protocol offload" />
    </container>

    <aggregateContainer name="P2PGONegotiationResponseInfoContainer" type="WDI_P2P_GO_NEGOTIATION_RESPONSE_INFO_CONTAINER" description="Generic container for GO Negotiation Response-related containers.">
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_RESPONSE_PARAMETERS" name="ResponseParams" type="P2PGONegotiationResponseParamsContainer" />
      <containerRef id="WDI_TLV_P2P_GROUP_ID" type="P2PGroupIDContainer" name="GroupID" optional="true" />
    </aggregateContainer>

    <container name="P2PGONegotiationConfirmationParamsContainer" type="WDI_P2P_GO_NEGOTIATION_CONFIRMATION_PARAMETERS_CONTAINER" description="Container for static GO Negotiation Confirmation parameters.">
      <groupRef ref="P2PGONegotiationConfirmationParamsStruct" name="ConfirmationParams" description="Static incoming GO Negotiation Confirmation parameters." />
    </container>


    <container name="PeerMACStatisticsContainer" type="WDI_MAC_STATISTICS_CONTAINER" description="Container for MAC layer statistics.">
      <groupRef ref="PeerMACStatisticsStruct" name="MACStatisticsParams" description="Per port MAC statistics." />
    </container>

    <container name="PhyStatisticsContainer" type="WDI_PHY_STATISTICS_CONTAINER" description="Container for PHY layer statistics.">
      <groupRef ref="PHYStatisticsStruct" name="PHYStatisticsParams" description="PHY statistics." />
    </container>

    <container name="SetOffloadParametersContainer" type="WDI_SET_OFFLOAD_PARAMS_CONTAINER" description="Container for TCP offload parameters.">
      <groupRef ref="SetOffloadParametersStruct" name="TcpSetOffloadParams" description="TCP set offload Parameters" />
    </container>

    <aggregateContainer name="P2PGONegotiationConfirmationInfoContainer" type="WDI_P2P_GO_NEGOTIATION_CONFIRMATION_INFO_CONTAINER" description="Generic container for GO Negotiation Confirmation-related containers.">
      <containerRef id="WDI_TLV_P2P_GO_NEGOTIATION_CONFIRMATION_PARAMETERS" name="ConfirmationParams" type="P2PGONegotiationConfirmationParamsContainer" />
      <containerRef id="WDI_TLV_P2P_GROUP_ID" type="P2PGroupIDContainer" name="GroupID" optional="true" />
      <containerRef id="WDI_TLV_P2P_LISTEN_CHANNEL" name="RemoteListenChannel" type="WFDChannelContainer" optional="true"/>
    </aggregateContainer>

    <container name="P2PInvitationResponseParamsContainer" type="WDI_P2P_INVITATION_RESPONSE_PARAMETERS_CONTAINER" description="Container for static Invitation Response parameters.">
      <groupRef ref="P2PInvitationResponseParamsStruct" name="ResponseParams" description="Static incoming invitation response parameters." />
    </container>

    <aggregateContainer name="P2PInvitationResponseInfoContainer" type="WDI_P2P_INVITATION_RESPONSE_INFO_CONTAINER" description="Generic container for Invitation Response-related containers.">
      <containerRef id="WDI_TLV_P2P_INVITATION_RESPONSE_PARAMETERS" name="ResponseParams" type="P2PInvitationResponseParamsContainer"/>
      <containerRef id="WDI_TLV_P2P_GROUP_BSSID" type="MacAddressContainer" name="GroupBSSID" optional="true" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_NUMBER" type="WFDChannelContainer" name="OperatingChannel" optional="true" />
    </aggregateContainer>
    
    <container name="P2PIncomingFrameParamsContainer" type="WDI_P2P_INCOMING_ACTION_FRAME_PARAMETERS_CONTAINER" description="Container for static incoming P2P frame parameters.">
      <groupRef ref="P2PIncomingFrameParamsStruct" name="FrameParams" description="Static incoming P2P frame parameters." />
    </container>

    <aggregateContainer name="P2PIncomingFrameInformationContainer" type="WDI_INCOMING_P2P_ACTION_FRAME_INFO" description="Container for Incoming P2P Frame Information">
      <containerRef id="WDI_TLV_P2P_INCOMING_FRAME_PARAMETERS" name="FrameParams" type="P2PIncomingFrameParamsContainer" />
      <containerRef id="WDI_TLV_P2P_ACTION_FRAME_IES" name="FrameIEs" type="ByteBlob" />
      <containerRef id="WDI_TLV_ACTION_FRAME_DEVICE_CONTEXT" name="DeviceContext" type="ByteBlob" optional="true" />
    </aggregateContainer>

    <container name="APAssociationResponseParametersContainer" type="WDI_AP_ASSOCIATION_RESPONSE_PARAMETERS_CONTAINER" description="Container for static association response parameters.">
      <groupRef ref="APAssociationResponseParametersStruct" name="ResponseParams" description="Static association response parameters."/>
    </container>

    <container name="APAssociationRequestParametersContainer" type="WDI_AP_ASSOCIATION_REQUEST_PARAMETERS_CONTAINER" description="Container for static association request parameters.">
      <groupRef ref="APAssociationRequestParametersStruct" name="RequestParams" description="Static association request parameters."/>
    </container>

    <aggregateContainer name="APIncomingAssociationRequestInfoContainer" type="WDI_INCOMING_ASSOCIATION_REQUEST_INFO_CONTAINER" description="Container that holds information about association request information.">
      <containerRef id="WDI_TLV_INCOMING_ASSOCIATION_REQUEST_PARAMETERS" name="AssocRequestParams" type="APAssociationRequestParametersContainer" />
      <containerRef id="WDI_TLV_ASSOCIATION_REQUEST_FRAME" name="AssocRequestFrame" type="ByteBlob" />
      <containerRef id="WDI_TLV_ASSOCIATION_REQUEST_DEVICE_CONTEXT" name="AssocRequestDeviceContext" type="ByteBlob" optional="true"/>
    </aggregateContainer>

    <container name="DisconnectParametersContainer" type="WDI_DISCONNECT_PARAMETERS_CONTAINER" description="Container for static disconnect parameters.">
      <groupRef name="DisconnectParameters" ref="DisconnectParamsStruct" description="Static disconnect parameters."/>
    </container>

    <container name="P2PSendActionFrameResultParametersContainer" type="WDI_SEND_ACTION_FRAME_RESULT_PARAMETERS_CONTAINER" description="Container for static send action frame result parameters.">
      <groupRef name="FrameParameters" ref="P2PSendActionFrameResultParametersStruct" description="Static result parameters." />
    </container>

    <aggregateContainer name="P2PSendActionFrameResultContainer" type="WDI_P2P_SEND_ACTION_FRAME_RESULT_CONTAINER" description="Container for send action frame result.">
      <containerRef id="WDI_TLV_P2P_SEND_ACTION_FRAME_RESULT_PARAMETERS" name="FrameParameters" type="P2PSendActionFrameResultParametersContainer" />
      <containerRef id="WDI_TLV_P2P_ACTION_FRAME_IES" name="FrameIEs" type="ByteBlob" />
    </aggregateContainer>

    <container name="AssocResponseResultParametersContainer" type="WDI_ASSOC_RESPONSE_RESULT_PARAMETERS_CONTAINER" description="Container for static association response parameters">
      <groupRef name="ResultParams" ref="AssocResponseResultParametersStruct" description="Static association response result parameters." />
    </container>

    <container isCollection="true" name="PhyTypeListContainer" type="WDI_PHY_TYPE_LIST_CONTAINER" description="Container for a list of phy types.">
      <namedType name="PhyTypes" type="WDI_PHY_TYPE" description="List of PHY types." />
    </container>

    <container name="DisconnectIndicationParametersContainer" type="WDI_DISCONNECT_INDICATION_PARAMETERS_CONTAINER" description="Container for static disconnect indication parameters.">
      <groupRef name="DisconnectParameters" ref="DisconnectIndicationParamsStruct" description="Static disconnect indication parameters."/>
    </container>

    <container name="GroupOwnerResetPolicyContainer" type="WDI_P2P_GO_INTERNAL_RESET_POLICY_CONTAINER" description="Container for internal GO reset policy.">
      <namedType name="ResetPolicy" type="WDI_P2P_GO_INTERNAL_RESET_POLICY" description="Internal GO Reset Policy Enumeration Value." />
    </container>    

    <container name="ChecksumOffloadContainerV4" type="WDI_CHECKSUM_OFFLOAD_V4_PARAMETERS_CONTAINER" description="Container for Ipv4 checksum offload.">
      <groupRef name="ChecksumV4parameters" ref="ChecksumV4parametersStruct" description="Struct for checksum V4 parameters"/>
    </container>

    <container name="ChecksumOffloadContainerV6" type="WDI_CHECKSUM_OFFLOAD_V6_PARAMETERS_CONTAINER" description="Container for Ipv6 checksum offload.">
      <groupRef name="ChecksumV6parameters" ref="ChecksumV6parametersStruct" description="Struct for checksum V6 parameters"/>
    </container>

    <aggregateContainer name="ChecksumOffloadAggregateContainerV4" type="WDI_IPV4_CHECKSUM_OFFLOAD_CAPABILITIES_CONTAINER" description="Container for TCP Checksum Parameters ipv4">
      <containerRef id="WDI_TLV_CHECKSUM_OFFLOAD_V4_TX_PARAMETERS" name="IpV4Transmit" type="ChecksumOffloadContainerV4" />
      <containerRef id="WDI_TLV_CHECKSUM_OFFLOAD_V4_RX_PARAMETERS" name="IpV4Receive" type="ChecksumOffloadContainerV4" />
    </aggregateContainer>

    <aggregateContainer name="ChecksumOffloadAggregateContainerV6" type="WDI_IPV6_CHECKSUM_OFFLOAD_CAPABILITIES_CONTAINER" description="Container for TCP Checksum Parameters ipv4">
      <containerRef id="WDI_TLV_CHECKSUM_OFFLOAD_V6_TX_PARAMETERS" name="IpV6Transmit" type="ChecksumOffloadContainerV6" />
      <containerRef id="WDI_TLV_CHECKSUM_OFFLOAD_V6_RX_PARAMETERS" name="IpV6Receive" type="ChecksumOffloadContainerV6" />
    </aggregateContainer>

    <aggregateContainer name="ChecksumOffloadContainer" type="WDI_CHECKSUM_OFFLOAD_CAPABILITIES_CONTAINER" description="Container for TCP Checksum Parameters ipv4">
      <containerRef id="WDI_TLV_IPV4_CHECKSUM_OFFLOAD" name="ipv4ChecksumOffload" type="ChecksumOffloadAggregateContainerV4" />
      <containerRef id="WDI_TLV_IPV6_CHECKSUM_OFFLOAD" name="ipv6ChecksumOffload" type="ChecksumOffloadAggregateContainerV6" />
    </aggregateContainer>

    <container name="LsoV1CapabilitiesContainer" type="WDI_LSO_V1_CAPABILITIES_CONTAINER" description="Container for LSO V1.">
      <groupRef name="LSOV1Parameters" ref="LSOV1ParametersStruct" description="Struct for LSO V1 parameters"/>
    </container>

    <container name="Ipv4LSOContainer" type="WDI_IPV4_LSO_V2_CONTAINER" description="Container for ipv4 LSO V2.">
      <groupRef name="Ipv4LSOParameters" ref="Ipv4LSOParametersStruct" description="Struct for LSO V2 ipv4 parameters"/>
    </container>

    <container name="Ipv6LSOContainer" type="WDI_IPV6_LSO_V2_CONTAINER" description="Container for ipv6 LSO V2.">
      <groupRef name="Ipv6LSOParameters" ref="Ipv6LSOParametersStruct" description="Struct for LSO V2 ipv6 parameters"/>
    </container>

    <container name="CancelParametersContainer" type="WDI_CANCEL_PARAMETERS_CONTAINER" description="Container for abort task.">
      <groupRef name="CancelParams" ref="CancelParamsStruct" description="Struct for cancel parameters"/>
    </container>

    <container name="PortAttributesContainer" type="WDI_PORT_ATTRIBUTES_CONTAINER" description="Container for Create port complete indication attributes.">
      <groupRef name="PortAttributesParameters" ref="PortAttributesParametersStruct" description="Struct for Create port complete indication"/>
    </container>

    <container name="ReceiveOffloadCapabilitiesContainer" type="WDI_RECEIVE_COALESCE_OFFLOAD_CAPABILITIES_CONTAINER" description="Container for Receive Offload">
      <groupRef name="ReceiveOffloadParameters" ref="ReceiveOffloadParametersStruct" description="Struct for Receive Offload parameters"/>
    </container>

    <container name="OffloadScopeContainer" type="WDI_OFFLOAD_SCOPE_CONTAINER" description="Container for Offload Scope">
      <groupRef name="OffloadScopeParameters" ref="OffloadScopeParametersStruct" description="Struct for Offload Scope parameters"/>
    </container>

    <aggregateContainer name="LsoV2CapabilitiesContainer" type="WDI_LSO_V2_CAPABILITIES_CONTAINER" description="Container for LSO V2.">
      <containerRef id="WDI_TLV_IPV4_LSO_V2" name="Ipv4LSO" type="Ipv4LSOContainer" />
      <containerRef id="WDI_TLV_IPV6_LSO_V2" name="Ipv6LSO" type="Ipv6LSOContainer" />
    </aggregateContainer>

    <aggregateContainer name="TcpOffloadCapabilitiesContainer" type="WDI_TCP_OFFLOAD_CAPABILITIES_CONTAINER" description="Container for TCP/IP offload capabilities.">
      <containerRef id="WDI_TLV_CHECKSUM_OFFLOAD_CAPABILITIES" name="ChecksumOffload" type="ChecksumOffloadContainer" />
      <containerRef id="WDI_TLV_LSO_V1_CAPABILITIES" name="LsoV1Capabilities" type="LsoV1CapabilitiesContainer" />
      <containerRef id="WDI_TLV_LSO_V2_CAPABILITIES" name="LsoV2Capabilities" type="LsoV2CapabilitiesContainer" />
      <containerRef id="WDI_TLV_RECEIVE_COALESCE_OFFLOAD_CAPABILITIES" name="ReceiveOffloadCapabilities" type="ReceiveOffloadCapabilitiesContainer" />
      <containerRef id="WDI_TLV_OFFLOAD_SCOPE" name="OffloadScope" type="OffloadScopeContainer" versionAdded="WDI_VERSION_1_1_5" />
    </aggregateContainer>

    <container name="DeletePortParametersContainer" description="Container for Task delete port" type="WDI_TASK_DELETE_PORT_PARAMETERS_CONTAINER">
      <groupRef name="DeletePortParameters" ref="DeletePortParametersStruct" description="Struct for delete port parameters"/>      
    </container>

    <container name="CreatePortParametersContainer" description="Container for Task create port" type="WDI_TASK_CREATE_PORT_PARAMETERS_CONTAINER">
      <groupRef name="CreatePortParameters" ref="CreatePortParametersStruct" description="Struct for create port parameters"/>      
    </container>

    <container name="Dot11ResetParametersContainer" description="Container for dot11 reset" type="WDI_DOT11_RESET_PARAMETERS_CONTAINER">
       <groupRef name="Dot11ResetParameters" ref="Dot11ResetParametersStruct" description="Struct for dot11 reset parameters"/>      
    </container>

    <!-- Scan mode parameters-->
    <container
      name="ScanMode"
      description="Container for Scan mode parameters"
      type="WDI_SCAN_PARAMETERS_CONTAINER">
      <groupRef name="Parameters" ref="ScanModeStruct" description="Scan mode parameters." />
    </container>

    <container
      name="CommunicationCapabilitiesContainer"
      description="Container for Communication Capabilities"
      type="WDI_COMMUNICATION_CAPABILITIES_CONTAINER">
      <groupRef name="CommCaps" ref="CommunicationCapabilitiesStruct" description="Communication Capabilities parameters." />
    </container>

    <container
      name="InterfaceCapabilitiesContainer"
      description="Container for interface Capabilities"
      type="WDI_INTERFACE_CAPABILITIES_CONTAINER">
      <groupRef name="InterfaceCaps" ref="WifiInterfaceAttributesStruct" description="Interface Capabilities parameters." />
    </container>

    <container
      name="InterfaceCapabilitiesContainerV1_0_20"
      description="Container for interface Capabilities"
      type="WDI_INTERFACE_CAPABILITIES_CONTAINER_V1_0_20">
      <groupRef name="InterfaceCaps" ref="WifiInterfaceAttributesStructV1_0_20" description="Interface Capabilities parameters." />
    </container>

    <container
      name="InterfaceCapabilitiesContainerV1_0_1"
      description="Container for interface Capabilities"
      type="WDI_INTERFACE_CAPABILITIES_CONTAINER_V1_0_1">
      <groupRef name="InterfaceCaps" ref="WifiInterfaceAttributesStructV1_0_1" description="Interface Capabilities parameters." />
    </container>

    <container
      name="InterfaceCapabilitiesContainerV1_0"
      description="Container for interface Capabilities"
      type="WDI_INTERFACE_CAPABILITIES_CONTAINER_V1_0">
      <groupRef name="InterfaceCaps" ref="WifiInterfaceAttributesStructV1_0" description="Interface Capabilities parameters." />
    </container>

    <container
      name="AlgorithmPairsContainer"
      description="Container for Wifi algo pairs"
      type="WDI_ALGO_PAIRS_LIST_CONTAINER"
      isCollection="true">
      <groupRef name="WifiAlgoPairs" ref="WifiAlgoPairsStruct" description="Wifi Algo Pairs parameters." />
    </container>

    <container
      name="StationCapabilitiesContainer"
      description="Container for Station capabilities"
      type="WDI_STATION_CAPABILITIES_CONTAINER">
      <groupRef name="WifiStationCapabilities" ref="WifiStationCapabilitiesStruct" description="Parameters for Station capabilities" />
    </container>

    <container
      name="StationCapabilitiesContainerV1_1_8"
      description="Container for Station capabilities"
      type="WDI_STATION_CAPABILITIES_CONTAINERV1_1_8">
      <groupRef name="WifiStationCapabilities" ref="WifiStationCapabilitiesStructV1_1_8" description="Parameters for Station capabilities" />
    </container>

    <container
      name="StationCapabilitiesContainerV1_0"
      description="Container for Station capabilities"
      type="WDI_STATION_CAPABILITIES_CONTAINERV1_0">
      <groupRef name="WifiStationCapabilities" ref="WifiStationCapabilitiesStructV1_0" description="Parameters for Station capabilities" />
    </container>

    <container
      name="APCapabilitiesContainer"
      description="Container for AP capabilities"
      type="WDI_AP_CAPABILITIES_CONTAINER">
      <groupRef name="WifiAPCapabilities" ref="WifiAPCapabilitiesStruct" description="Parameters for AP capabilities" />
    </container>

    <container
      name="CountryRegionListContainer"
      description="Container for Country or Region List"
      type="WDI_COUNTRY_REGION_LIST_CONTAINER"
      isCollection="true">
      <groupRef name="WifiCountryRegionList" ref="WifiCountryRegionListStruct" description="Parameters for Country/Region List" />
    </container>

    <container
      name="VirtualizationCapabilitiesContainer"
      description="Container for Virtualization capabilities"
      type="WDI_VIRTUALIZATION_CAPABILITIES_CONTAINER">
      <groupRef name="WifiVirtualizationCapabilities" ref="WifiVirtualizationCapabilitiesStruct" description="Parameters for Virtualization capabilities" />
    </container>

    <container
      name="P2PCapabilitiesContainer"
      description="Container for P2P Capabilities"
      type="WDI_P2P_CAPABILITIES_CONTAINER">
      <groupRef name="P2PCapabilities" ref="P2PCapabilitiesStruct" description="Parameters for P2P Capabilities" />
    </container>

    <container
      name="P2PCapabilitiesContainerV1_0_10"
      description="Container for P2P Capabilities"
      type="WDI_P2P_CAPABILITIES_CONTAINER_V1_0_10">
      <groupRef name="P2PCapabilities" ref="P2PCapabilitiesStructV1_0_10" description="Parameters for P2P Capabilities" />
    </container>

    <container
      name="P2PCapabilitiesContainerV1_0_1"
      description="Container for P2P Capabilities"
      type="WDI_P2P_CAPABILITIES_CONTAINER_V1_0_1">
      <groupRef name="P2PCapabilities" ref="P2PCapabilitiesStructV1_0_1" description="Parameters for P2P Capabilities" />
    </container>

    <container
      name="DataPathCapabilitiesContainer"
      description="Container for DataPath Capabilities"
      type="WDI_DATAPATH_CAPABILITIES_CONTAINER">
      <groupRef name="DataPathCapabilities" ref="DatapathCapabilitiesStruct" description="Parameters for DataPath Capabilities" />
    </container>      

    <container
      name="BandChannelMappingContainer"
      description="Container for Channel List"
      type="WDI_BAND_CHANNEL_MAPPING_CONTAINER" 
      isCollection="true">
      <namedType name="BandChannelMappingEntry" type="WDI_BAND_CHANNEL_MAPPING_ENTRY" description="List of Channel info" />      
    </container>

    <container
      name="ChannelMappingContainer"
      description="Container for Channel List"
      type="WDI_CHANNEL_MAPPING_CONTAINER" 
      isCollection="true">
      <namedType name="ChannelMappingEntry" type="WDI_CHANNEL_MAPPING_ENTRY" description="List of Channel info" />      
    </container>

    <container
      name="BandCapabilitiesContainer"
      description="Container for Band Capabilities"
      type="WDI_BAND_CAPABILITIES_CONTAINER">
      <groupRef name="BandCapabilities" ref="BandCapabilitiesStruct" description="Parameters for Band Capabilities" />
    </container> 

    <container
      name="PhyCapabilitiesContainer"
      description="Container for Phy Capabilities"
      type="WDI_PHY_CAPABILITIES_CONTAINER">
      <groupRef name="PhyCapabilities" ref="PhyCapabilitiesStruct" description="Parameters for Phy Capabilities" />
    </container>

    <container
      name="DataRateListContainer"
      description="Container for Data Rate list"
      type="WDI_PHY_DATA_RATE_LIST_CONTAINER"
      isCollection="true">
      <groupRef name="DataRateList" ref="DataRateListStruct" description="Parameters for Data rate list" />
    </container>

    <container
      name="PmCapabilitiesContainer"
      description="Container for PM capabilities"
      type="WDI_PM_CAPABILITIES_CONTAINER">
      <groupRef name="PmCapabilities" ref="PmCapabilitiesStruct" description="Parameters for PM capabilities" />
    </container>

    <container
      name="ReceiveCoalescingCapabilitiesContainer"
      description="Container for Receive Coalescing capabilities"
      type="WDI_RECEIVE_COALESCING_CAPABILITIES_CONTAINER">
      <groupRef name="ReceiveCoalescingCapabilities" ref="ReceiveCoalescingCapabilitiesStruct" description="Parameters for Receive Coalescing capabilities" />
    </container>
    <container
      name="PrivacyExemptionEntryContainer"
      description="Container for Privacy Exemption Entry"
      type="WDI_PRIVACY_EXEMPTION_LIST_CONTAINER">
      <groupRef name="PrivacyExemptionEntryParams" ref="PrivacyExemptionEntryParamsStruct" description="Parameters for Privacy exemption list" />
    </container>

    <container
      name="OsPowerMgmtFeaturesContainer"
      description="Container for OS power management flags"
      type="WDI_OS_POWER_MGMT_FEATURES_CONTAINER">
      <groupRef name="OsPowerMgmtFeatures" ref="OsPowerMgmtStruct" description="Parameters for OS power management features" />
    </container> 

    <aggregateContainer name="StationAttributesContainer" type="WDI_STATION_ATTRIBUTES_CONTAINER" description="Container for Station attributes.">
      <containerRef id="WDI_TLV_STATION_CAPABILITIES" name="StationCapabilities" type="StationCapabilitiesContainer" versionAdded="WDI_VERSION_1_1_9"/>
      <containerRef id="WDI_TLV_STATION_CAPABILITIES" name="StationCapabilities" type="StationCapabilitiesContainerV1_1_8" versionAdded="WDI_VERSION_1_1_8" versionRemoved="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_STATION_CAPABILITIES" name="StationCapabilities" type="StationCapabilitiesContainerV1_0" versionRemoved="WDI_VERSION_1_1_8"/>
      <containerRef id="WDI_TLV_UNICAST_ALGORITHM_LIST" name="UnicastAlgorithms" type="AlgorithmPairsContainer" optional="true" />
      <containerRef id="WDI_TLV_MULTICAST_DATA_ALGORITHM_LIST" name="MulticastDataAlgorithms" type="AlgorithmPairsContainer" optional="true" />
      <containerRef id="WDI_TLV_MULTICAST_MGMT_ALGORITHM_LIST" name="MulticastManagementAlgorithms" type="AlgorithmPairsContainer" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="APAttributesContainer" type="WDI_AP_ATTRIBUTES_CONTAINER" description="Container for AP attributes.">
      <containerRef id="WDI_TLV_AP_CAPABILITIES" name="APCapabilities" type="APCapabilitiesContainer"/>
      <containerRef id="WDI_TLV_UNICAST_ALGORITHM_LIST" name="UnicastAlgorithms" type="AlgorithmPairsContainer" />
      <containerRef id="WDI_TLV_MULTICAST_DATA_ALGORITHM_LIST" name="MulticastDataAlgorithms" type="AlgorithmPairsContainer" />
    </aggregateContainer>

    <aggregateContainer name="VirtualizationAttributesContainer" type="WDI_VIRTUALIZATION_ATTRIBUTES_CONTAINER" description="Container for Virtualization attributes.">
      <containerRef id="WDI_TLV_VIRTUALIZATION_CAPABILITIES" name="VirtualizationCapabilities" type="VirtualizationCapabilitiesContainer" />
    </aggregateContainer>

    <aggregateContainer name="P2PAttributesContainer" type="WDI_P2P_ATTRIBUTES_CONTAINER" description="Container for P2P attributes.">
      <containerRef id="WDI_TLV_P2P_CAPABILITIES" name="P2PCapabilities" type="P2PCapabilitiesContainer" versionAdded="WDI_VERSION_1_0_20" />
      <containerRef id="WDI_TLV_P2P_CAPABILITIES" name="P2PCapabilities" type="P2PCapabilitiesContainerV1_0_10" versionAdded="WDI_VERSION_1_0_10" versionRemoved="WDI_VERSION_1_0_20" />
      <containerRef id="WDI_TLV_P2P_CAPABILITIES" name="P2PCapabilities" type="P2PCapabilitiesContainerV1_0_1" versionRemoved="WDI_VERSION_1_0_10" />
      <containerRef id="WDI_TLV_P2P_INTERFACE_ADDRESS_LIST" name="InterfaceAddressList" type="MacAddressListContainer" />
    </aggregateContainer>

    <aggregateContainer name="BandInfoContainer" type="WDI_BAND_INFO_CONTAINER" description="Container for Band Info.">
      <containerRef id="WDI_TLV_BAND_CAPABILITIES" name="BandCapabilities" type="BandCapabilitiesContainer" />
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ValidPhyTypes" type="PhyTypeListContainer" />
      <containerRef id="WDI_TLV_CHANNEL_LIST" name="ValidChannelTypes" type="ChannelMappingContainer"/>
      <containerRef id="WDI_TLV_CHANNEL_WIDTH_LIST" name="ChannelWidthList" type="UINT32ListContainer" />
    </aggregateContainer>

    <aggregateContainer name="PhyInfoContainer" type="WDI_PHY_INFO_CONTAINER" description="Container for Phy Info.">
      <containerRef id="WDI_TLV_PHY_CAPABILITIES" name="PhyCapabilities" type="PhyCapabilitiesContainer" />
      <containerRef id="WDI_TLV_PHY_TX_POWER_LEVEL_LIST" name="TxPowerLevelList" type="UINT32ListContainer" />
      <containerRef id="WDI_TLV_PHY_DATA_RATE_LIST" name="DataRateList" type="DataRateListContainer" />
    </aggregateContainer>  

     <aggregateContainer name="CommunicationAttributesContainer" description="Container for Communication Attributes." type="WDI_COMMUNICATION_ATTRIBUTES_CONTAINER">
        <containerRef id="WDI_TLV_COMMUNICATION_CAPABILITIES" name="CommunicationCapabilities" type="CommunicationCapabilitiesContainer" optional="true" />    
     </aggregateContainer>

     <aggregateContainer name="InterfaceAttributesContainer" description="Container for interface attributes." type="WDI_INTERFACE_ATTRIBUTES_CONTAINER">
       <containerRef id="WDI_TLV_INTERFACE_CAPABILITIES" name="InterfaceCapabilities" type="InterfaceCapabilitiesContainer" versionAdded="WDI_VERSION_1_1_8" />
       <containerRef id="WDI_TLV_INTERFACE_CAPABILITIES" name="InterfaceCapabilities" type="InterfaceCapabilitiesContainerV1_0_20" versionAdded="WDI_VERSION_1_0_20" versionRemoved="WDI_VERSION_1_1_8" />
       <containerRef id="WDI_TLV_INTERFACE_CAPABILITIES" name="InterfaceCapabilities" type="InterfaceCapabilitiesContainerV1_0_1" versionAdded="WDI_VERSION_1_0_1" versionRemoved="WDI_VERSION_1_0_20" />
       <containerRef id="WDI_TLV_INTERFACE_CAPABILITIES" name="InterfaceCapabilities" type="InterfaceCapabilitiesContainerV1_0" versionRemoved="WDI_VERSION_1_0_1" />
       <containerRef id="WDI_TLV_FIRMWARE_VERSION" name="FirmwareVersion" type="ASCIIString"/>
       <containerRef id="WDI_TLV_IHV_NON_WDI_OIDS_LIST" name="NonWdiOidsList" type="UINT32ListContainer" optional="true"/>
     </aggregateContainer>

     <aggregateContainer name="DatapathAttributesContainer" description="Container for Datapath attributes." type="WDI_DATAPATH_ATTRIBUTES_CONTAINER">
        <containerRef id="WDI_TLV_DATAPATH_CAPABILITIES" name="DataPathCapabilities" type="DataPathCapabilitiesContainer" optional="true" />    
     </aggregateContainer>  

    <container
      name="RadioStateContainer"
      description="Container for radio status update"
      type="WDI_RADIO_STATUS_CONTAINER">
      <groupRef name="RadioStatus" ref="RadioStatusStruct" description="Current Radio Status"/>
    </container>

    <container
      name="AutoPowerSaveParametersContainer"
      description="Container for Auto power save params"
      type="WDI_GET_AUTO_POWER_SAVE_CONTAINER">
      <groupRef name="AutoPowerSaveParams" ref="AutoPowerSaveParamsStruct" description="Get auto power state parameters"/>
    </container>

    <container
      name="ConnectionSettingsContainer"
      description="Container for connection settings"
      type="WDI_CONNECTION_SETTINGS_CONTAINER">
      <groupRef name="ConnectionSettings" ref="ConnectionSettingsStruct" description="Connection settings"/>
    </container>

    <container
      name="ConnectionSettingsContainerV1_0"
      description="Container for connection settings"
      type="WDI_CONNECTION_SETTINGS_CONTAINER_V1_0">
      <groupRef name="ConnectionSettings" ref="ConnectionSettingsStructV1_0" description="Connection settings"/>
    </container>

    <container
      name="AssociationResultParametersContainer"
      description="Container for association results"
      type="WDI_ASSOCIATION_RESULT_PARAMETERS_CONTAINER">
      <groupRef name="AssociationResultParameters" ref="AssociationResultParametersStruct" description="Association result parameters"/>
    </container>

    <container name="EtherTypeEncapContainer" description="Container for ethertype encapsulation entries" type="WDI_ETHERTYPE_ENCAPSULATION_LIST_CONTAINER" isCollection="true">
      <namedType name="EtherTypeEncapsulations" type="WDI_ETHERTYPE_ENCAPSULATION_ENTRY" description="Ethertype Encapsulations parameters."/>
    </container>

    <aggregateContainer
      name="FTReAssocParametersContainer"
      description="Container for Fast Transition parameters"
      type="WDI_FT_REASSOC_PARAMETERS_CONTAINER">
      <containerRef id="WDI_TLV_FT_MDE" name="MDE" type="ByteBlob"/>
      <containerRef id="WDI_TLV_FT_FTE" name="FTE" type="ByteBlob" />
      <containerRef id="WDI_TLV_FT_PMKR0NAME" name="PMKR0Name" type="PMKNameContainer"/>
    </aggregateContainer>

    <aggregateContainer
      name="FTInitialAssocParametersContainer"
      description="Container for FT Initial association parameters"
      type="WDI_FT_INITIAL_ASSOC_PARAMETERS_CONTAINER">
      <containerRef id="WDI_TLV_FT_MDE" name="MDE" type="ByteBlob"/>
    </aggregateContainer>

    <aggregateContainer name="SAECommitRequestContainer" description="Container for SAE commit request" type="WDI_SAE_COMMIT_REQUEST">
      <containerRef id="WDI_TLV_SAE_FINITE_CYCLIC_GROUP" name="FiniteCyclicGroup" type="UINT16Container" />
      <containerRef id="WDI_TLV_SAE_SCALAR" name="Scalar" type="ByteBlob" />
      <containerRef id="WDI_TLV_SAE_ELEMENT" name="Element" type="ByteBlob" />
      <containerRef id="WDI_TLV_SAE_ANTI_CLOGGING_TOKEN" name="AntiCloggingToken" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_SAE_REJECTED_GROUPS" name="RejectedGroups" type="ByteBlob" optional="true" versionAdded="WDI_VERSION_1_1_10" />
    </aggregateContainer>

    <aggregateContainer name="SAEConfirmRequestContainer" description="Container for SAE confirm request" type="WDI_SAE_CONFIRM_REQUEST">
      <containerRef id="WDI_TLV_SAE_SEND_CONFIRM" name="SendConfirm" type="UINT16Container" />
      <containerRef id="WDI_TLV_SAE_CONFIRM" name="Confirm" type="ByteBlob" />
    </aggregateContainer>

     <aggregateContainer name="HESSIDInfoContainer" description="Container for HESSID connection information." type="WDI_HESSID_INFO_CONTAINER">
      <containerRef id="WDI_TLV_ACCESS_NETWORK_TYPE" name="AccessNetworkType" type="UINT8Container" />
      <containerRef id="WDI_TLV_HESSID" name="HESSIDList" type="MacAddressListContainer" />    
      <containerRef id="WDI_TLV_HOTSPOT_INDICATION_ELEMENT" name="HSIndicationElement" type="ByteBlob" />
     </aggregateContainer>  

    <aggregateContainer name="ConnectParametersContainer" type="WDI_CONNECT_PARAMETERS_CONTAINER" description="Container for connect parameters.">
      <containerRef id="WDI_TLV_CONNECTION_SETTINGS" name="ConnectionSettings" type="ConnectionSettingsContainer" versionAdded="WDI_VERSION_1_0_1"/>
      <containerRef id="WDI_TLV_CONNECTION_SETTINGS" name="ConnectionSettings" type="ConnectionSettingsContainerV1_0" versionRemoved="WDI_VERSION_1_0_1"/>
      <containerRef id="WDI_TLV_SSID" name="SSIDList" type="WiFiSSID" multiContainer="true" />
      <containerRef id="WDI_TLV_HESSID_INFO" name="HESSIDInfo" type="HESSIDInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_AUTH_ALGO_LIST" name="AuthenticationAlgorithms" type="AuthAlgoList"/>
      <containerRef id="WDI_TLV_MULTICAST_CIPHER_ALGO_LIST" name="MulticastCipherAlgorithms" type="CipherAlgoList"/>
      <containerRef id="WDI_TLV_UNICAST_CIPHER_ALGO_LIST" name="UnicastCipherAlgorithms" type="CipherAlgoList"/>      
      <containerRef id="WDI_TLV_EXTRA_ASSOCIATION_REQUEST_IES" name="AssociationRequestVendorIE" type="ByteBlob" optional="true" />      
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ActivePhyTypeList" type="PhyTypeListContainer" optional="true" />
      <containerRef id="WDI_TLV_DISALLOWED_BSSIDS_LIST" name="DisallowedBSSIDs" type="MacAddressListContainer" optional="true" />
      <containerRef id="WDI_TLV_ALLOWED_BSSIDS_LIST" name="AllowedBSSIDs" type="MacAddressListContainer" optional="true" />
      <containerRef id="WDI_TLV_OWE_DH_IE" name="OWEDHIE" type="ByteBlob" optional="true" />
    </aggregateContainer>

    <container name="BSSSelectionParametersContainer" type="WDI_BSS_SELECTION_PARAMETERS_CONTAINER" description="Container for BSS Selection Parameters">
      <groupRef ref="BSSSelectionParametersStruct" name="SelectionParameters" description="Parameters used for selecting this BSS entry"/>
    </container>

    <aggregateContainer name="ConnectBSSEntryContainer" type="WDI_CONNECT_BSS_ENTRY_CONTAINER" description="Container for connect BSS entries parameters.">
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_PROBE_RESPONSE_FRAME" name="ProbeResponseFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BEACON_FRAME" name="BeaconFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BSS_ENTRY_SIGNAL_INFO" name="SignalInfo" type="SignalInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_CHANNEL_INFO" name="ChannelInfo" type="ChannelInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT" name="DeviceSpecificContext" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_PMKID" name="PMKID" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_EXTRA_ASSOCIATION_REQUEST_IES" name="AssociationRequestVendorIE" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_FT_INITIAL_ASSOC_PARAMETERS" name="FTInitialAssocParameters" type="FTInitialAssocParametersContainer" optional="true" />
      <containerRef id="WDI_TLV_FT_REASSOC_PARAMETERS" name="FTReAssocParameters" type="FTReAssocParametersContainer" optional="true" />
      <containerRef id="WDI_TLV_BSS_SELECTION_PARAMETERS" name="BSSSelectionParameters" type="BSSSelectionParametersContainer" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="AssociationResultsContainer" type="WDI_ASSOCIATION_RESULT_CONTAINER" description="Container for association result report.">
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_ASSOCIATION_RESULT_PARAMETERS" name="AssociationResultParameters" type="AssociationResultParametersContainer"/>
      <containerRef id="WDI_TLV_ASSOCIATION_REQUEST_FRAME" name="AssociationRequestFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_ASSOCIATION_RESPONSE_FRAME" name="AssociationResponseFrame" type="ByteBlob" optional="true" />      
      <containerRef id="WDI_TLV_AUTHENTICATION_RESPONSE_FRAME" name="AuthenticationResponseFrame" type="ByteBlob" optional="true" />      
      <containerRef id="WDI_TLV_BEACON_PROBE_RESPONSE" name="BeaconProbeResponse" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_ETHERTYPE_ENCAP_TABLE" name="EthertypeEncapTable" type="EtherTypeEncapContainer" optional="true" />
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ActivePhyTypeList" type="PhyTypeListContainer" versionAdded="WDI_VERSION_1_1_4" />
      <containerRef id="WDI_TLV_PHY_TYPE_LIST" name="ActivePhyTypeList" type="PhyTypeListContainer" optional="true" versionRemoved="WDI_VERSION_1_1_4" />
    </aggregateContainer>

    <container name="TkipMicFailureParametersContainer" type="WDI_TKIP_MIC_FAILURE_PARAMETERS_CONTAINER" description="Container for TKIP MIC failure parameters.">
      <groupRef name="Parameters" ref="TkipMicFailureParametersStruct" description="TKIP MIC failure parameters"/>
    </container>

    <container
      name="CipherKeyIDContainer"
      description="Container for Cipher Key ID"
      type="WDI_CIPHER_KEY_ID_CONTAINER">
      <groupRef name="CipherKeyId" ref="CipherKeyIdStruct" description="Cipher Key ID struct"/>
    </container>

    <container
      name="DefaultKeyIdParametersContainer"
      description="Container for setting default Key ID"
      type="WDI_SET_DEFAULT_KEY_ID_CONTAINER">
      <groupRef name="DefaultKeyIdParameters" ref="DefaultKeyIdParametersStruct" description="Set Default Key ID struct"/>
    </container>

    <container
      name="CipherKeyTypeContainer"
      type="WDI_CIPHER_KEY_TYPE_CONTAINER"
      description="Container for Cipher key type.">
      <namedType name="CipherKeyType" type="WDI_CIPHER_KEY_TYPE" description="The Cipher key type."/>
    </container>

    <container
      name="CipherAlgorithmContainer"
      type="WDI_CIPHER_ALGORITHM_CONTAINER"
      description="Container for Cipher algorithm.">
      <namedType name="CipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Specifies the cipher algorithm that uses this key"/>
    </container>

    <container
      name="CipherKeyTypeInfoContainer"
      description="Container for Cipher Key type info"
      type="WDI_CIPHER_KEY_TYPE_INFO_CONTAINER">
      <groupRef name="CipherKeyType" ref="CipherKeyTypeStruct" description="Cipher Key Type struct"/>
    </container>

    <container
      name="ReceiveSequenceCountContainer"
      description="Container for Receive sequence count"
      type="WDI_RECEIVE_SEQUENCE_COUNT_CONTAINER">
      <groupRef name="ReceiveSequenceCount" ref="ReceiveSequenceCountStruct" description="Receive Sequence count struct"/>
    </container>

    <container
      name="LinkStateChangeParametersContainer"
      description="Container for Link state change parameters"
      type="WDI_LINK_STATE_CHANGE_PARAMETERS_CONTAINER">
      <groupRef name="LinkStateChangeParameters" ref="LinkStateChangeParametersStruct" description="Link state change parameters struct"/>
    </container>

    <aggregateContainer
      name="TKIPInfoContainer"
      description="Container for TKIP Info"
      type="WDI_CIPHER_KEY_TKIP_INFO_CONTAINER">
      <containerRef id="WDI_TLV_CIPHER_KEY_TKIP_KEY" name="TKIPKey" type="PrivateByteBlob" />
      <containerRef id="WDI_TLV_CIPHER_KEY_TKIP_MIC" name="TKIPMIC" type="PrivateByteBlob" />
    </aggregateContainer>

    <aggregateContainer name="ConfiguredCipherKeyContainer" type="WDI_SET_CONFIGURED_CIPHER_KEY_CONTAINER" description="Container for Specifying a Cipher Key entry.">
      <containerRef id="WDI_TLV_CIPHER_KEY_TYPE" name="CipherKeyType" type="CipherKeyTypeContainer" />
      <containerRef id="WDI_TLV_CIPHER_ALGORITHM" name="CipherAlgorithm" type="CipherAlgorithmContainer" />
      <containerRef id="WDI_TLV_CIPHER_KEY_RECEIVE_SEQUENCE_COUNT" name="ReceiveSequenceCount" type="ReceiveSequenceCountContainer" />
      <containerRef id="WDI_TLV_CIPHER_KEY_CCMP_KEY" name="CCMPKey" type="PrivateByteBlob" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_GCMP_KEY" name="GCMPKey" type="PrivateByteBlob" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_TKIP_INFO" name="TKIPInfo" type="TKIPInfoContainer" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_BIP_KEY" name="BIPKey" type="PrivateByteBlob" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_WEP_KEY" name="WEPKey" type="PrivateByteBlob" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_IHV_KEY" name="IHVKey" type="PrivateByteBlob" optional="true" />
      <containerRef id="WDI_TLV_CIPHER_KEY_GCMP_256_KEY" name="GCMP_256Key" type="PrivateByteBlob" optional="true" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_CIPHER_KEY_BIP_GMAC_256_KEY" name="BIP_GMAC_256Key" type="PrivateByteBlob" optional="true" versionAdded="WDI_VERSION_1_1_9" />
    </aggregateContainer>

    <aggregateContainer name="RsnKeyInfoContainer" type="WDI_PM_RSN_KEY_INFO_CONTAINER" description="Container for 802.11 Rsn Key information.">
      <containerRef id="WDI_TLV_PROTOCOL_OFFLOAD_ID" name="ProtocolOffloadId" type="UINT32Container" />
      <containerRef id="WDI_TLV_REPLAY_COUNTER" name="ReplayCounter" type="UINT64Container" />
      <containerRef id="WDI_TLV_KCK_CONTENT" name="KCK_CONTENT" type="PrivateByteBlob" />
      <containerRef id="WDI_TLV_KEK_CONTENT" name="KEK_CONTENT" type="PrivateByteBlob" />
    </aggregateContainer>

    <container name="RsnKeyInfoContainerV1_1_8" type="WDI_PM_RSN_KEY_INFO_CONTAINERV1_1_8" description="Container for 802.11 Rsn Key information.">
      <groupRef ref="DOT11RSNREKeyOffloadStruct" name="DOT11RSNREKeyOffload" description="Parameters for PM protocol offload" />
    </container>

    <aggregateContainer name="DOT11RSNREKeyOffloadContainer" type="WDI_RSN_OFFLOAD_KEYS_CONTAINER" description="Container for RSN Offload Key(s).">
      <containerRef id="WDI_TLV_RSN_KEY_INFO" name="RsnKeyInfo" type="RsnKeyInfoContainer" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_RSN_KEY_INFO" name="RsnKeyInfo" type="RsnKeyInfoContainerV1_1_8" versionRemoved="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_CONFIGURED_CIPHER_KEY" name="CipherKey" type="ConfiguredCipherKeyContainer" multiContainer="true" optional="true" />
    </aggregateContainer>

    <aggregateContainer name="SetCipherKeyContainer" type="WDI_SET_ADD_CIPHER_KEYS_CONTAINER" description="Container for Specifying a Cipher Key Mapping Key entry.">
      <containerRef id="WDI_TLV_PEER_MAC_ADDRESS" name="PeerMacAddress" type="MacAddressContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_ID" name="CipherKeyID" type="CipherKeyIDContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_TYPE_INFO" name="CipherKeyTypeInfo" type="CipherKeyTypeInfoContainer" />
      <containerRef id="WDI_TLV_CIPHER_KEY_RECEIVE_SEQUENCE_COUNT" name="ReceiveSequenceCount" type="ReceiveSequenceCountContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_CCMP_KEY" name="CCMPKey" type="PrivateByteBlob" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_GCMP_KEY" name="GCMPKey" type="PrivateByteBlob" optional="true" versionAdded="WDI_VERSION_1_0_20" />
      <containerRef id="WDI_TLV_CIPHER_KEY_TKIP_INFO" name="TKIPInfo" type="TKIPInfoContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_BIP_KEY" name="BIPKey" type="PrivateByteBlob" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_WEP_KEY" name="WEPKey" type="PrivateByteBlob" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_IHV_KEY" name="IHVKey" type="PrivateByteBlob" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_GCMP_256_KEY" name="GCMP_256Key" type="PrivateByteBlob" optional="true" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_CIPHER_KEY_BIP_GMAC_256_KEY" name="BIP_GMAC_256Key" type="PrivateByteBlob" optional="true" versionAdded="WDI_VERSION_1_1_9" />
    </aggregateContainer>

    <aggregateContainer name="DeleteCipherKeyContainer" type="WDI_SET_DELETE_CIPHER_KEYS_CONTAINER" description="Container for Specifying a Cipher Key Mapping Key entry.">
      <containerRef id="WDI_TLV_PEER_MAC_ADDRESS" name="PeerMacAddress" type="MacAddressContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_ID" name="CipherKeyID" type="CipherKeyIDContainer" optional="true"/>
      <containerRef id="WDI_TLV_CIPHER_KEY_TYPE_INFO" name="CipherKeyTypeInfo" type="CipherKeyTypeInfoContainer" />      
    </aggregateContainer>

    <!-- NLO -->
    <container name="NetworkListOffloadConfigContainer" description="container for networkoffload list config" type="WDI_NETWORK_LIST_OFFLOAD_CONFIG_CONTAINER">
      <groupRef name="NetworkListOffloadConfig" ref="NetworkListOffloadConfigStruct" description="Struct for networklist offload" />
    </container>

    <aggregateContainer name="SsidOffloadContainer" description="container for SSID offload" type="WDI_SSID_OFFLOAD_CONTAINER">
      <containerRef id="WDI_TLV_SSID" name="SsidToScan" type="WiFiSSID" />
      <containerRef id="WDI_TLV_UNICAST_ALGORITHM_LIST" name="UnicastAlgorithms" type="AlgorithmPairsContainer" />
      <containerRef id="WDI_TLV_BAND_CHANNEL_LIST" name="BandChannelHintList" type="BandChannelMappingContainer" versionAdded="WDI_VERSION_1_1_10" />
      <containerRef id="WDI_TLV_IS_DIRECTED_PROBE_FOR_HIDDEN_PERMITTED" name="IsDirectedProbeForHiddenPermitted" type="BOOLContainer" optional="true" versionAdded="WDI_VERSION_1_1_0" />
    </aggregateContainer>

    <aggregateContainer name="SsidOffloadContainerv1_1_9" description="container for SSID offload" type="WDI_SSID_OFFLOAD_CONTAINERv1_1_9">
      <containerRef id="WDI_TLV_SSID" name="SsidToScan" type="WiFiSSID" />
      <containerRef id="WDI_TLV_UNICAST_ALGORITHM_LIST" name="UnicastAlgorithms" type="AlgorithmPairsContainer" />
      <containerRef id="WDI_TLV_CHANNEL_LIST" name="ChannellHintList" type="ChannelMappingContainer" />
      <containerRef id="WDI_TLV_IS_DIRECTED_PROBE_FOR_HIDDEN_PERMITTED" name="IsDirectedProbeForHiddenPermitted" type="BOOLContainer" optional="true" versionAdded="WDI_VERSION_1_1_0" />
    </aggregateContainer>

    <aggregateContainer name="NetworkListOffloadContainer" type="WDI_NETWORK_LIST_OFFLOAD_INFO" description="Container for Network List offload Information">
      <containerRef id="WDI_TLV_NETWORK_LIST_OFFLOAD_CONFIG" name="NetworkListOffloadConfig" type="NetworkListOffloadConfigContainer" />
      <containerRef id="WDI_TLV_SSID_OFFLOAD" name="SsidOffload" type="SsidOffloadContainer" multiContainer="true" optional="true" versionAdded="WDI_VERSION_1_1_10" />
      <containerRef id="WDI_TLV_SSID_OFFLOAD" name="SsidOffload" type="SsidOffloadContainerv1_1_9" multiContainer="true" optional="true" versionRemoved="WDI_VERSION_1_1_10" />
    </aggregateContainer>

    <container name="WakeEventMaskContainer" description="container wake event mask" type="WDI_WAKE_EVENT_MASK_CONTAINER">
      <groupRef name="WakeEventMask" ref="WakeEventMaskStruct" description="Struct for wake event mask" />
    </container>

    <!--++Coalesce-->
    <container name="ReceiveCoalescingConfigContainer" description="container for add receive coalescing config" type="WDI_RECEIVE_COALESCING_CONFIG_CONTAINER">
      <groupRef name="ReceiveCoalescingConfig" ref="ReceiveCoalescingConfigStruct" description="Struct for receive coalescing config" />
    </container>

    <container name="ReceiveCoalescingFieldContainer" description="container for add receive coalescing field" type="WDI_RECEIVE_COALESCING_FIELD_CONTAINER">
      <groupRef name="ReceiveCoalescingField" ref="ReceiveCoalescingFieldStruct" description="Struct for receive coalescing Field" />
    </container>

    <aggregateContainer name="AddReceiveCoalescingContainer" type="ADD_RECEIVE_COALESCING_INFO" description="Container for add receive coalescing Information">
      <containerRef id="WDI_TLV_RECEIVE_COALESCING_CONFIG" name="ReceivingCoalesingConfig" type="ReceiveCoalescingConfigContainer" />
      <containerRef id="WDI_TLV_RECEIVE_FILTER_FIELD" name="ReceiveCoalescingField" type="ReceiveCoalescingFieldContainer" multiContainer="true" optional="true"/>
    </aggregateContainer>
     <!--Coalesce-->

    <!--++WOL-->
    <aggregateContainer name="WakePacketPatternContainer" description="container for packet pattern" type="WDI_PACKET_PATTERN_CONTAINER">
      <containerRef id="WDI_TLV_WAKE_PACKET_BITMAP_PATTERN_ID" name="WakePacketPatternId" type="UINT32Container" />
      <containerRef id="WDI_TLV_BITMAP_PATTERN" name="PacketPattern" type="ByteBlob" />
      <containerRef id="WDI_TLV_BITMAP_PATTERN_MASK" name="PacketPatternMask" type="ByteBlob" />      
    </aggregateContainer>

    <container name="WakeIPv4SyncContainer" description="container for IPv4 TCP sync" type="WDI_IPv4_TCP_SYNC_CONTAINER">
      <groupRef name="IPv4TcpSync" ref="IPv4TcpSyncStruct" description="Struct for IPv4TcpSync" />
    </container>
    
    <container name="WakeIPv6SyncContainer" description="container for IPv6TCP sync" type="WDI_IPv6TCP_SYNC_CONTAINER">
      <groupRef name="IPv6cpSync" ref="IPv6TcpSyncStruct" description="Struct for IPv6TcpSync" />
    </container>
    <!--WOL-->

    <aggregateContainer name="P2PChannelEntriesListContainer" type="WDI_P2P_CHANNEL_ENTRIES_CONTAINER" description="WFD Channel List Container.">
      <containerRef id="WDI_TLV_OPERATING_CLASS" name="OperatingClass" type="UINT8Container" />
      <containerRef id="WDI_TLV_CHANNEL_INFO_LIST" name="ChannelList" type="ChannelListContainer" />
    </aggregateContainer>

    <aggregateContainer name="P2PChannelListContainer" type="WDI_P2P_CHANNEL_LIST_CONTAINER" description="WFD Channel List Container.">
      <containerRef id="WDI_TLV_COUNTRY_REGION_LIST" name="CountryRegionList" type="CountryRegionListContainer" />
      <containerRef id="WDI_TLV_P2P_CHANNEL_ENTRY_LIST" name="ChannelEntries" type="P2PChannelEntriesListContainer" multiContainer="true" />
    </aggregateContainer>

    <!-- DeviceServices -->
    <container name="GuidContainer" description="Container for a Guid" type="WDI_GUID_CONTAINER">
      <groupRef ref="GuidStruct" name="Guid" description="A GUID struct."/>
    </container>

    <container name="GuidListContainer" description="Container for a list of GUIDs" type="WDI_GUID_LIST_CONTAINER" isCollection="true">
      <namedType name="Guid" type="GUID" description="A GUID."/>
    </container>

    <!-- Test -->
    <container name="Test" description="Test container" type="TEST_CONTAINER">
      <namedType type="ULONG" name="Field" description="Test field"/>
    </container>

    <aggregateContainer name="TestAggregate" description="Test Aggregate Container" type="TEST_AGGREGATE_CONTAINER">
      <containerRef id="WDI_TLV_TEST2" name="TestField" type="Test" multiContainer="true" />
    </aggregateContainer>


    <!-- Fine Timing Measurement -->
    <aggregateContainer name="FTMTargetBSSEntryContainer" type="WDI_FTM_TARGET_BSS_ENTRY_CONTAINER" description="Container for FTM target BSS entries">
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_PROBE_RESPONSE_FRAME" name="ProbeResponseFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BEACON_FRAME" name="BeaconFrame" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_BSS_ENTRY_SIGNAL_INFO" name="SignalInfo" type="SignalInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_CHANNEL_INFO" name="ChannelInfo" type="ChannelInfoContainer" />
      <containerRef id="WDI_TLV_BSS_ENTRY_DEVICE_CONTEXT" name="DeviceSpecificContext" type="ByteBlob" optional="true" />
      <containerRef id="WDI_TLV_REQUEST_LCI_REPORT" name="RequestLCIReport" type="BOOLContainer" />
    </aggregateContainer>

    <container name="FTMResponseStatusContainer" type="WDI_FTM_RESPONSE_STATUS_CONTAINER" description="Container for FTM response status">
      <namedType type="WDI_FTM_RESPONSE_STATUS" name="FTMResponseStatus" description="The status of the FTM requested."/>
    </container>

    <container name="FTMBandwidthUsedContainer" type="WDI_FTM_BANDWIDTH_USED_CONTAINER" description="Container for FTM bandwidth used">
      <namedType type="WDI_FTM_BANDWIDTH" name="FTMBandwidth" description="The negotiated bandwidth used to exercise the FTM requested."/>
    </container>

    <container name="FTMPropagationPropertyContainer" type="WDI_FTM_PROPAGATION_PROPERTY_CONTAINER" description="Container for FTM propagation property">
      <namedType type="WDI_FTM_PROPAGATION" name="FTMPropagation" description="The estimated propagation properties of the signal."/>
    </container>

    <container name="LCIReportStatusContainer" type="WDI_LCI_REPORT_STATUS_CONTAINER" description="Container for LCI report status">
      <namedType type="WDI_LCI_REPORT_STATUS" name="LCIReportStatus" description="The status of the LCI report requested."/>
    </container>

    <aggregateContainer name="FTMResponseContainer" type="WDI_FTM_RESPONSE_CONTAINER" description="Container for FTM response">
      <containerRef id="WDI_TLV_BSSID" name="BSSID" type="MacAddressContainer"/>
      <containerRef id="WDI_TLV_FTM_RESPONSE_STATUS" name="Status" type="FTMResponseStatusContainer" />
      <containerRef id="WDI_TLV_RETRY_AFTER" name="RetryAfter" optional="true" type="UINT16Container" />
      <containerRef id="WDI_TLV_FTM_NUMBER_OF_MEASUREMENTS" name="NumberOfMeasurements" optional="true" type="UINT16Container" />
      <containerRef id="WDI_TLV_BSS_ENTRY_SIGNAL_INFO" name="SignalInfo" optional="true" type="SignalInfoContainer" />
      <containerRef id="WDI_TLV_FTM_BANDWIDTH_USED" name="BandwidthUsed" optional="true" type="FTMBandwidthUsedContainer" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_RTT" name="RTT" optional="true" type="UINT32Container" versionRemoved="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_RTT" name="RTT" optional="true" type="INT32Container" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_RTT_ACCURACY" name="RTTAccuracy" optional="true" type="UINT32Container" versionRemoved="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_RTT_VARIANCE" name="RTTVariance" optional="true" type="UINT64Container" />
      <containerRef id="WDI_TLV_FTM_PROPAGATION_PROPERTY" name="PropagationProperty" optional="true" type="FTMPropagationPropertyContainer" versionAdded="WDI_VERSION_1_1_9" />
      <containerRef id="WDI_TLV_LCI_REPORT_STATUS" name="LCIStatus" optional="true" type="LCIReportStatusContainer" />
      <containerRef id="WDI_TLV_LCI_REPORT_BODY" name="LCIReport" optional="true" type="ByteBlob" />
    </aggregateContainer>

  </containers>

  <propertyGroups>
    <propertyGroup name="StartAPParamsStruct" type="WDI_START_AP_PARAMETERS" description="Structure definition for starting an AP (v1.0.10).">
      <uint32 name="BeaconPeriod" description="If non-zero, this parameter specifies the beacon interval"/>
      <uint32 name="DTIMPeriod" description="If non-zero, this parameter specifies the  number of beacon intervals between transmissions of beacon frames that contain a TIM element with a DTIM Count field that equals zero. This value is transmitted in the DTIM Period field of beacon frames."/>
      <bool name="ExcludeUnencrypted" description="Specifies exclude unencrypted bit."/>
      <bool name ="DataRateSupport802_11b" description ="Whether the device supports 802.11b speeds or not. When this is set the AP should allow clients using 11b rates to connect to it." />
      <bool name ="AcceptNonP2PClients" description ="Whether to allow legacy SoftAP clients to connect." />
      <bool name ="MustUseSpecifiedChannels" description ="Whether the AP can only be started on the specified channels." />
    </propertyGroup>

    <propertyGroup name="StartAPParamsStructV1_0_1" type="WDI_START_AP_PARAMETERS_V1_0_1" description="Structure definition for starting an AP.">
      <uint32 name="BeaconPeriod" description="If non-zero, this parameter specifies the beacon interval"/>
      <uint32 name="DTIMPeriod" description="If non-zero, this parameter specifies the  number of beacon intervals between transmissions of beacon frames that contain a TIM element with a DTIM Count field that equals zero. This value is transmitted in the DTIM Period field of beacon frames."/>
      <bool name="ExcludeUnencrypted" description="Specifies exclude unencrypted bit."/>
      <bool name ="DataRateSupport802_11b" description ="Whether the device supports 802.11b speeds or not. When this is set the AP should allow clients using 11b rates to connect to it." />
    </propertyGroup>

    <propertyGroup name="DeletePortParametersStruct" type="WDI_DELETE_PORT_PARAMETERS" description="Structure definition for delete port parameters.">
       <uint16 name="PortNumber" description="A 16-bit identifier of the port to delete"/>
    </propertyGroup>

    <propertyGroup name="CreatePortParametersStruct" type="WDI_CREATE_PORT_PARAMETERS" description="Structure definition for create port parameters.">
       <uint16 name="OpModeMask" description="A bitwise OR value of the operation modes the host may configure on the port being created."/>
       <uint32 name="NdisPortNumber" description="The port number that will be registered with NDIS for this port."/>       
    </propertyGroup>

    <propertyGroup name="Dot11ResetParametersStruct" type="WDI_DOT11_RESET_PARAMETERS" description="Structure definition for dot11 reset parameters.">
       <uint8 name="SetDefaultMIB" description="If (and only if) true, all MIB attributes for the port being reset are set to their default values."/>
    </propertyGroup>

    <propertyGroup name="DefaultKeyIdParametersStruct" type="WDI_SET_DEFAULT_KEY_ID_STRUCT" description="Structure definition for setting default key ID for packet transmission.">
      <uint32 name="KeyID" description="The default Key ID"/>
    </propertyGroup>

    <propertyGroup name="pmknamestruct" type="WDI_PMK_NAME_STRUCT" description="Structure definition for WDI_TYPE_PMK_NAME.">
      <namedType type="WDI_TYPE_PMK_NAME" name="pmkname" description="Pmkname."/>
    </propertyGroup>

    <propertyGroup name="PrivacyExemptionEntryParamsStruct" type="WDI_PRIVACY_EXEMPTION_PARAMETERS_STRUCT" description="Structure definition for privacy exemption list parameters.">      
      <uint16 name="EtherType" description="Specifies the IEEE EtherType in big-endian byte order"/>
      <namedType name="ExemptionActionType" type="WDI_EXEMPTION_ACTION_TYPE" description="Specifies the type of exemption from the specified EtherType"/>
      <namedType name="ExemptionPacketType" type="WDI_EXEMPTION_PACKET_TYPE" description="Specifies the type of packet that the exemption for the specified EtherType applies to"/>      
    </propertyGroup>

    <propertyGroup name="LinkStateChangeParametersStruct" type="WDI_LINK_STATE_CHANGE_PARAMETERS_STRUCT" description="Structure definition for link state change parameters.">
      <namedType name="PeerMACAddress" type="WDI_MAC_ADDRESS" description="MAC address of remote peer"/>
      <uint32 name="TxLinkSpeed" description="Current Tx Link Speed"/>
      <uint32 name="RxLinkSpeed" description="Current Rx Link Speed"/>
      <uint8 name="LinkQuality" description="Current Link Quality"/>
    </propertyGroup>

    <propertyGroup name="WFDChannelStruct" type="WDI_P2P_CHANNEL" description="Structure definition for a Wi-Fi Direct Channel.">
      <uint8 count="3" name="CountryOrRegionString" description="The country or region code where OperatingClass and ChannelNumber are valid."/>
      <uint8 name="OperatingClass" description="The frequency band for ChannelNumber."/>
      <namedType type="WDI_CHANNEL_NUMBER" name="ChannelNumber" description="The channel number for the P2P Device or Group."/>
    </propertyGroup>

    <propertyGroup name="WFDDeviceType" type="WDI_P2P_DEVICE_TYPE" description="Structure definition for a Wi-Fi Direct device type.">
      <uint16 name="CategoryID" description="Main type category identifier" />
      <uint8 count="4" name="OUI" description="OUI assigned to this device type" />
      <uint16 name="SubcategoryID" description="Subcategory type identifier" />
    </propertyGroup>

    <propertyGroup name="P2PDeviceInfoParametersStruct" type="WDI_P2P_DEVICE_INFO_PARAMETERS" description="Structure definition for P2P Device Information Parameters.">
      <uint8 count="6" name="DeviceAddress" description="Peer's device address." />
      <uint16 name="ConfigurationMethods" description="Configuration Methods supported by this device." />
      <groupRef name="DeviceType" description="Primary Device Type." ref="WFDDeviceType" />
    </propertyGroup>

    <propertyGroup name="RscStatsStruct" type="WDI_TCP_RSC_STATISTICS_STRUCT" description="Structure definition for TCP RSC statistics">
      <uint64 name="CoalescedPkts" description="Coalesced Packets" />
      <uint64 name="CoalescedOctets" description="Coalesced Octets" />
      <uint64 name="CoalesceEvents" description="Coalesce Events" />
      <uint64 name="Aborts" description="Aborts" />
    </propertyGroup>

    <propertyGroup name="P2PDeviceCapabilityStruct" type="WDI_P2P_DEVICE_CAPABILITY_PARAMETERS" description="Structure definition for P2P Device Capability.">
      <uint8 name="DeviceCapabilityBitmap" description="P2P Device capabilities as defined in Table 12 of P2P technical specification."/>
      <uint8 name="OSSetDeviceCapabilities" description="Bitmap of P2P Device capabilities that are set by OS."/>
      <uint32 name="WPSVersionsEnabled" description="Bitmask of which WPS versions are enabled."/>
    </propertyGroup>

    <propertyGroup name="BssIdInfoStruct" type="WDI_BSSID_INFO_STRUCT" description="Structure for BSSID Info">
      <uint8 name="APReachability" description="1 - Not Reachable, 2 - Unknown, 3 - Reachable"/>
      <uint8 name="Security" description="If 1, indicates that the AP identified by this BSSID supports the same security provisioning as used by the STA in its current association"/>
      <uint8 name="KeyScope" description="The Key Scope bit, when set, indicates the AP indicated by this BSSID has the same authenticator as the AP sending the report. If this bit is 0, it indicates a distinct authenticator or the information is not available"/>
      <uint8 name="SpectrumManagement" description="Spectrum Management is set to 1 if dot11SpectrumManagementRequired is true"/>
      <uint8 name="QoS" description="QoS is set to 1 if dot11QosOptionImplemented is true"/>
      <uint8 name="APSD" description="An AP sets the APSD subfield to 1 within the Capability Information field when dot11APSDOptionImplemented is true and sets it to 0 otherwise"/>
      <uint8 name="RadioMeasurement" description="RadioMeasurement 1 if dot11RadioMeasurementActivated is true"/>
      <uint8 name="DelayedBlockAck" description="DelayedBlockAck - 1 if dot11DelayedBlockAckOptionImplemented is true"/>
      <uint8 name="ImmediateBlockAck" description="ImmediateBlockAck - 1 if dot11ImmediateBlockAckOptionImplemented is true"/>
      <uint8 name="MobilityDomain" description="MobilityDomain - Set to 1 if the AP represented by this BSSID is including an MDE in its Beacon frames"/>
      <uint8 name="HighThroughput" description="HighThroughput - Set to 1 to indicate that the AP represented by this BSSID is an HT AP including the HT Capabilities element in its Beacon"/>
    </propertyGroup>

    <propertyGroup name="P2PGroupOwnerCapabilityStruct" type="WDI_P2P_GROUP_OWNER_CAPABILITY_PARAMETERS" description="P2P Group Owner capability information">
      <uint8 name="GroupCapabilityBitmap" description="P2P Group capabilities as defined in Table 13 of P2P technical specification."/>
      <uint8 name="OSSetGroupCapabilities" description="Bitmap of P2P Group capabilities that are set by OS."/>
      <uint32 name="MaximumGroupLimit" description="Maximum client count for this group owner." />
    </propertyGroup>

    <propertyGroup name="P2PDiscoverModeStruct" type="WDI_P2P_DISCOVER_MODE" description="Structure definition for P2P Discover Mode Parameters">
      <namedType name="DiscoveryType" type="WDI_P2P_DISCOVER_TYPE" description="Type of discovery to be performed by the port."/>
      <bool name="ForcedDiscovery" description="A flag indicating that a complete device discovery is required. If this flag is not set, a partial discovery may be performed." />
      <namedType name="ScanType" type="WDI_P2P_SCAN_TYPE" description="Type of scan to be performed by port in scan phase." />
      <namedType name="ServiceDiscoveryType" type="WDI_P2P_SERVICE_DISCOVERY_TYPE" description="Type of Service discovery to be performed by the port."/>
      <bool name="ScanRepeatCount" description="How many times the full scan procedure should be repeated. If set to 0, scan should be repeated until the task is aborted by the host."/>
      <uint32 name="TimeBetweenScans" description="If Scan Repeat Count != 1, this time specifies how long (in milliseconds) firmware should wait before repeating the scan procedure, after completing a full scan." />
    </propertyGroup>

    <propertyGroup name="P2PBackgroundDiscoverModeStruct" type="WDI_P2P_BACKGROUND_DISCOVER_MODE" description="Structure definition for P2P Background Discover Mode Parameters">
      <namedType name="DiscoveryType" type="WDI_P2P_DISCOVER_TYPE" description="Type of discovery to be performed by the port."/>
      <namedType name="ServiceDiscoveryType" type="WDI_P2P_SERVICE_DISCOVERY_TYPE" description="Type of Service discovery to be performed by the port."/>
      <uint32 name="DeviceVisiblilityTimeout" description="Maximum timeout for reporting a device entry in ms." />
    </propertyGroup>

    <propertyGroup name="ScanDwellTimeStruct" type="WDI_SCAN_DWELL_TIME" description="Structure definition for scan dwell times.">
      <uint32 name="ActiveChannelDwellTime" description="Time in milliseconds to dwell on active channels."/>
      <uint32 name="PassiveChannelDwellTime" description="Time in milliseconds to dwell on passive channels."/>
      <uint32 name="MaximumScanTime" description="Time in milliseconds for total scan."/>
    </propertyGroup>

    <propertyGroup name="P2PListenDurationStruct" type="WDI_P2P_LISTEN_DURATION" description="Structure definition for P2P Listen Duration.">
      <uint32 name="CycleDuration" description="Total Cycle duration in milliseconds."/>
      <uint32 name="ListenActiveDuration" description="Time in milliseconds during each cycle that Adapter will be listening."/>
    </propertyGroup>

    <propertyGroup name="CancelParamsStruct" type="WDI_CANCEL_PARAMETERS_STRUCT" description="Structure definition for cancel parameters.">
      <namedType name="OriginalTaskOID" type="NDIS_OID" description="OID from the original task being aborted"/>
      <uint32 name="OriginalTransactionId" description="Transaction ID from the original task"/>
      <namedType name="OriginalPortId" type="WDI_PORT_ID" description="Port ID from the original task"/>
    </propertyGroup>

    <propertyGroup name="ipv4PmProtocolOffloadStruct" type="WDI_PM_PROTOCOL_OFFLOAD_IPv4ARP_STRUCT" description="Structure definition for PM protocol.">
      <uint32 name="ProtocolOffloadId" description="Offload id"/>
      <uint8 count ="4" name="RemoteIPV4Address" description="Remote IPv4 Address"/>
      <uint8 count="4" name="HostIPV4Address" description="Host IPv4 address"/>
      <namedType name="MacAddress" type="WDI_MAC_ADDRESS" description="Mac address"/>
    </propertyGroup>

    <propertyGroup name="ipv6PMOffloadStruct" type="WDI_PM_PROTOCOL_OFFLOAD_IPv6_STRUCT" description="Structure definition for PM protocol.">
      <uint32 name="ProtocolOffloadId" description="Offload id"/>
      <uint8 count ="16" name="RemoteIPV6Address" description="Remote IPv4 Address"/>
      <uint8 count ="16" name="SolicitdNodeIPv6Address" description="Solicit node IPv6 address"/>
      <uint8 count="16" name="TargetIPV6Address1" description="Target IPv6 address1"/>
      <uint8 count ="16" name="TargetIPV6Address2" description="Target IPv6 address2"/>
      <namedType name="MacAddress" type="WDI_MAC_ADDRESS" description="Mac address"/>
    </propertyGroup>

    <propertyGroup name="DOT11RSNREKeyOffloadStruct" type="WDI_PM_PROTOCOL_OFFLOAD_80211RSN_REKEY_STRUCT" description="Structure definition for PM protocol.">
      <uint32 name="ProtocolOffloadId" description="Offload id"/>
      <uint64 name="ReplayCounter" description="A UINT64 value that contains a replay counter."/>
      <uint8 count="16" name="KCK_CONTENT" description="A UINT8 array that contains an IEEE 802.11 key confirmation key (KCK)."/>
      <uint8 count ="16" name="KEK_CONTENT" description="Kek content"/>
    </propertyGroup>

    <propertyGroup name="ScanModeStruct" type="WDI_SCAN_MODE" description="Structure definition for scan mode parameters.">
      <bool name="ScanRepeatCount" description="The number of times the full scan procedure should be repeated. If set to 0, scan should be repeated until the task is aborted by the host."/>      
      <namedType name="AllowedScanType" type="WDI_SCAN_TYPE" description="Specifies the type of scan that should be performed. If WDI_SCAN_TYPE_ACTIVE is set, then device must only scan active channels." />      
      <bool name="LiveUpdatesNeeded" description="Specifies that live updates are needed"/>
      <namedType name="ScanTrigger" type="WDI_SCAN_TRIGGER" description="Specifies the trigger for the scan." />      
    </propertyGroup>

    <propertyGroup name="PortAttributesParametersStruct" type="WDI_CREATE_PORT_COMPLETE_STRUCT" description="Create port complete indication parameters">
      <namedType name="MacAddress" type="WDI_MAC_ADDRESS" description="The MAC address associated with the created port."/>
      <uint16 name="PortNumber" description="Port Number."/>
    </propertyGroup>

    <propertyGroup name="GONegotiationRequestParamsStruct" type="WDI_P2P_GO_NEGOTIATION_REQUEST_PARAMETERS" description="Structure definition for GO Negotiation Request action frame send parameters.">
      <uint8 name="GOIntent" description="Local Wi-Fi Direct Group Owner Intent. This shall be a value between 0 and 15." />
      <bool name="TieBreaker" description="Tie breaker field of GO Intent." />
      <uint16 name="GOConfigTimeout" description="GO Configuration Timeout in milliseconds." />
      <uint16 name="ClientConfigTimeout" description="Client Configuration Timeout in milliseconds." />
      <namedType name="IntendedInterfaceAddress" type="WDI_MAC_ADDRESS" description="Local MAC Address for future Wi-Fi Direct connection."/>
      <uint8 name="GroupCapability" description="Wi-Fi Direct Group capability bitmask." />
      <uint8 name="OSSetGroupCapabilityBitmask" description="Wi-Fi Direct Group Capabilities set by the OS." />
    </propertyGroup>

    <propertyGroup name="SignalInfoStruct" type="WDI_SIGNAL_INFO" description="Structure definition for signal information.">
      <int32 name="RSSI" description="The received signal strength indicator (RSSI) value of the beacon or probe response from the peer. This is in units of decibels referenced to 1.0 milliwatts (dBm)."/>
      <uint32 name="LinkQuality" description="The link quality value ranging from 0 through 100. A value of 100 specifies the highest link quality."/>
    </propertyGroup>

    <propertyGroup name="BSSEntryChannelInfoStruct" type="WDI_BSS_ENTRY_CHANNEL_INFO" description="Structure definition for BSS Entry Channel Information.">
      <namedType type="WDI_CHANNEL_NUMBER" name="ChannelNumber" description="The logical channel number on which the peer was discovered" />
      <namedType type="WDI_BAND_ID" name="BandId" description="Band ID for the given BSS entry." />
    </propertyGroup>

    <propertyGroup name="BSSEntryAgeInfoStruct" type="WDI_BSS_ENTRY_AGE_INFO" description="Structure definition for BSS Entry age Information.">
      <uint64 name="HostTimeStamp" description="Timestamp of when this BSS entry was most recently discovered" />
      <bool name="CachedInformation" description="Specifies whether this is cached information." />
    </propertyGroup>

    <propertyGroup name="P2PSendActionFrameRequestParamsStruct" type="WDI_P2P_ACTION_FRAME_REQUEST_PARAMETERS" description="Structure definition for Action Frame Request Send Parameters.">
      <namedType name="RequestFrameType" type="WDI_P2P_ACTION_FRAME_TYPE" description="Type of Request Frame to be sent." />
      <namedType name="PeerDeviceAddress" type="WDI_MAC_ADDRESS" description="Device address of target peer P2P device." />
      <uint8 name="DialogToken" description="Wi-Fi Direct Dialog Token for this transaction." />
      <uint32 name="SendTimeout" description="Maximum time, in milliseconds to send this action frame." />
      <uint32 name="PostACKDwellTime" description="Time to remain on listen channel, in milliseconds after the incoming packet is acknowledged." />
    </propertyGroup>

    <propertyGroup name="PeerMACStatisticsStruct" type="WDI_MAC_STATISTICS_PARAMETERS" description="Structure definition for MAC layer stats.">
      <namedType name="MACAddress" type="WDI_MAC_ADDRESS" description="MAC address of the peer that these counts are set for. For multicast and broadcast packets, this value is set of FF-FF-FF-FF-FF-FF-FF" />
      <uint64 name="TransmittedFrameCount" description="The number of MSDU packets and MMPDU frames that the IEEE MAC layer of the 802.11 station successfully transmitted." />
      <uint64 name="ReceivedFrameCount" description="The number of MSDU packets and MMPDU frames that the IEEE MAC layer of the 802.11 station successfully received. " />
      <uint64 name="WEPExcludedCount" description="The number of unencrypted received MPDU frames that the MAC layer discarded when the IEEE 802.11 dot11ExcludeUnencrypted management information base (MIB) object is enabled." />
      <uint64 name="TKIPLocalMICFailures" description="The number of received MSDU packets that the 802.11 station discarded because of MIC failures." />
      <uint64 name="TKIPReplays" description="The number of received MPDU frames that the 802.11 station discarded because of the TKIP replay protection procedure." />
      <uint64 name="TKIPICVErrorCount" description="The number of encrypted MPDU frames that the 802.11 station failed to decrypt because of a TKIP ICV error." />
      <uint64 name="CCMPFormatErrors" description="The number of received MPDU frames that the 802.11 discarded because of an invalid AES-CCMP format." />
      <uint64 name="CCMPReplays" description="The number of received MPDU frames that the 802.11 station discarded because of the AES-CCMP replay protection procedure." />
      <uint64 name="CCMPDecryptErrors" description="The number of received MPDU frames that the 802.11 station discarded because of errors detected by the AES-CCMP decryption algorithm." />
      <uint64 name="WEPUndecryptableCount" description="The number of encrypted MPDU frames received for which a WEP decryption key was not available on the 802.11 station." />
      <uint64 name="WEPICVErrorCount" description="The number of encrypted MPDU frames that the 802.11 station failed to decrypt because of a WEP ICV error." />
      <uint64 name="DecryptSuccessCount" description="The number of received encrypted packets that the 802.11 station successfully decrypted." />
      <uint64 name="DecryptFailureCount" description="The number of encrypted packets that the 802.11 station failed to decrypt." />
    </propertyGroup>

    <propertyGroup name="PHYStatisticsStruct" type="WDI_PHY_STATISTICS_PARAMETERS" description="Structure definition for PHY layer stats.">
      <namedType name="PhyType" type="WDI_PHY_TYPE" description="Type for this PHY" />
      <uint64 name="TransmittedFrameCount" description="The number of MSDU packets and MMPDU frames that the IEEE PHY layer of the 802.11 station has successfully transmitted." />
      <uint64 name="GroupTransmittedFrameCount" description="The number of multicast or broadcast MSDU packets and MMPDU frames that the IEEE PHY layer of the 802.11 station has successfully transmitted." />
      <uint64 name="FailedCount" description="The number of MSDU packets and MMPDU frames that the 802.11 station failed to transmit after exceeding the retry limits defined by the 802.11 IEEE dot11ShortRetryLimit or dot11LongRetryLimit MIB counters" />
      <uint64 name="RetryCount" description="The number of MSDU packets and MMPDU frames that the 802.11 station successfully transmitted after one or more attempts." />
      <uint64 name="MultipleRetryCount" description="The number of MSDU packets and MMPDU frames that the 802.11 station successfully transmitted after more than one retransmission attempt." />
      <uint64 name="MaxTXLifetimeExceededCount" description="The number of MSDU packets and MMPDU frames that the 802.11 station failed to transmit because of a timeout as defined by the IEEE 802.11 dot11MaxTransmitMSDULifetime MIB object" />
      <uint64 name="TransmittedFragmentCount" description="The number of MPDU frames that the 802.11 station transmitted and acknowledged through a received 802.11 ACK frame." />
      <uint64 name="RTSSuccessCount" description="The number of times that the 802.11 station received a Clear To Send (CTS) frame in response to a Request To Send (RTS) frame" />
      <uint64 name="RTSFailureCount" description="The number of times that the 802.11 station did not receive a CTS frame in response to an RTS frame" />
      <uint64 name="ACKFailureCount" description="The number of times that the 802.11 station expected and did not receive an Acknowledgement (ACK) frame" />
      <uint64 name="ReceivedFrameCount" description="The number of MSDU packets and MMPDU frames that the 802.11 station has successfully received." />
      <uint64 name="GroupReceivedFrameCount" description="The number of multicast or broadcast MSDU packets and MMPDU frames that the 802.11 station has successfully received." />
      <uint64 name="PromiscuousReceivedFrameCount" description="The number of MSDU packets or MMPDU frames received by the 802.11 station when a promiscuous packet filter is enabled." />
      <uint64 name="MaxRXLifetimeExceededCount" description="The number if MSDU packets and MMPDU frames that the 802.11 station discarded because of a timeout as defined by the IEEE 802.11 dot11MaxReceiveLifetime MIB object" />
      <uint64 name="FrameDuplicateCount" description="The number of duplicate MPDU frames that the 802.11 station received" />
      <uint64 name="ReceivedFragmentCount" description="The number of MPDU frames received by the 802.11 station for MSDU packets or MMPDU frames." />
      <uint64 name="PromiscuousReceivedFragmentCount" description="The number of MPDU frames received by the 802.11 station for MSDU packets or MMPDU frames when a promiscuous packet filter was enabled." />
      <uint64 name="FCSErrorCount" description="The number of MPDU frames that the 802.11 station received with FCS errors" />    
    </propertyGroup>

    <propertyGroup name="P2PInvitationRequestParamsStruct" type="WDI_P2P_INVITATION_REQUEST_PARAMETERS" description="Structure definition for static Invitation Request Parameters.">
      <uint16 name="GOConfigTimeout" description="GO Configuration Timeout in milliseconds." />
      <uint16 name="ClientConfigTimeout" description="Client Configuration Timeout in milliseconds." />
      <uint8 name="InvitationFlags" description="Invitation flags as defined by P2P specification." />
      <bool name="IsLocalGO" description="Whether or not the outgoing Invitation Request is an invitation to a local GO." />
    </propertyGroup>    

    <propertyGroup name="LinkQualityBarMapStruct" type="WDI_LINK_QUALITY_BAR_MAP_PARAMETERS" description="Structure definition for mapping link quality to signal strength bars.">
      <uint8 name="StartRange" description="Lower limit link quality (0-100) for the current signal strength bar" />
      <uint8 name="EndRange" description="Upper limit of link quality (0-100) for the current signal strength bar" />
      <uint8 name="BarNumber" description="The signal strength bar number" />
    </propertyGroup>

    <propertyGroup name="LowLatencyCQParamsStruct" type="WDI_LOW_LATENCY_CONNECTION_QUALITY_PARAMETERS" description="Structure definition for low latency connection quality parameters.">
      <uint8 name="MaximumOffChannelOperationTime" description="Maximum number of milliseconds to be off channel" />
      <uint8 name="RoamingNeededLinkQualityThreshold" description="Link quality below which its OK to send a roaming needed indication" />
    </propertyGroup>

    <propertyGroup name="AutoPowerSaveParamsStruct" type="WDI_GET_AUTO_POWER_SAVE_STRUCT" description="Structure definition for Auto power save.">
      <uint8 name="EnableAutoPSM" description="Firmware current AutoPSM state." />
      <uint8 name="bReserved" description="" />
      <uint16 name="wReserved" description="" />
      <uint16 name="BeaconInterval" description="Unit ms, e.g. 102" />
      <uint8 name="ListenInterval" description="Unit of BecaonInterval e.g. 1" />
      <uint8 name="ListenIntervalInDx" description="Listen interval in the Last low power state. E.g. 5.  If no last low power state specify 255" />
      <enum name="PowerMode" type="WDI_POWER_SAVE_LEVEL" description=""/>
      <enum name="PowerModeinDx" type="WDI_POWER_SAVE_LEVEL" description=""/>
      <enum name="Reason" type="WDI_POWER_MODE_REASON_CODE" description="Specify the reason for entering the Power Save state and listen interval"/>
      <uint64 name="MillisecondsSinceStart" description="Time the device runs" />
      <uint64 name="MillisecondsInPowerSave" description="Time in Power saving" />
      <uint64 name="ReceivedMulticastPackets" description="Include broadcast" />
      <uint64 name="SentMulticastPackets" description="" />
      <uint64 name="ReceivedUnicastPackets" description="" />
      <uint64 name="SentUnicastPacket" description="" />
    </propertyGroup>

    <propertyGroup name="P2PProvDiscRequestParamsStruct" type="WDI_P2P_PROVISION_DISCOVERY_REQUEST_PARAMETERS" description="Structure definition for static Provision Discovery Request Parameters.">
      <uint8 name="GroupCapability" description="Wi-Fi Direct Group capability bitmask." />
      <uint8 name="OSSetGroupCapabilityBitmask" description="Wi-Fi Direct Group Capabilities set by the OS." />
    </propertyGroup>

    <propertyGroup name="P2PProvDiscResponseParamsStruct" type="WDI_P2P_PROVISION_DISCOVERY_RESPONSE_PARAMETERS" description="Structure definition for static Provision Discovery Response Parameters.">
        <uint8 name="GroupCapability" description="Wi-Fi Direct Group capability bitmask." />
        <uint8 name="OSSetGroupCapabilityBitmask" description="Wi-Fi Direct Group Capabilities set by the OS." />
    </propertyGroup>

    <propertyGroup name="P2PProvServiceAttributesStruct" type="WDI_P2P_PROVISION_SERVICE_ATTRIBUTES" description="Structure definition for Provision Service Attributes.">
      <uint8 name="StatusCode" description="Wi-Fi Direct Status Code, as defined by the Wi-Fi Direct specification." />
      <namedType name="IntendedInterfaceAddress" type="WDI_MAC_ADDRESS" description="Local MAC Address for future Wi-Fi Direct connection."/>
      <uint8 name="ConnectionCapability" description="Connection capability bitmask." />
      <uint32 name="FeatureCapability" description="Feature capability bitmask." />
      <uint32 name="AdvertisementID" description="Advertisement ID for the Service Instance." />
      <namedType name="ServiceAddress" type="WDI_MAC_ADDRESS" description="Service address for the service instance."/>
      <uint32 name="SessionID" description="Session ID that uniquely identifies the Session to the Service." />
      <namedType name="SessionAddress" type="WDI_MAC_ADDRESS" description="Session address that uniquely identifies the Session to the Service."/>
      <uint16 name="GOConfigTimeout" description="GO Configuration Timeout in milliseconds." />
      <uint16 name="ClientConfigTimeout" description="Client Configuration Timeout in milliseconds." />
      <uint8 name="UsePersistentGroup" description="Flag indicating if a persistent group will be used for the connection." />
      <uint8 name="FollowOnProvisionDiscovery" description="Flag indicating if this frame is part of follow on provision discovery." />
    </propertyGroup>

    <propertyGroup name="CommunicationCapabilitiesStruct" type="WDI_COMMUNICATION_CAPABILITIES" description="Structure definition for Communication Capabilities">
      <uint32 name="MaxCommandSize" description="Maximum Command Size in Bytes" />
    </propertyGroup>

    <propertyGroup name="WifiInterfaceAttributesStruct" type="WDI_INTERFACE_CAPABILITIES" description="Structure definition for interface Capabilities">
      <uint32 name="MTUSize" description="MTU size" />
      <uint32 name="MaxMultiCastListSize" description="Multicast list size for the adapter" />
      <uint16 name="BackFillSize" description="Backfill Size in Bytes" />
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="Permanent Wi-Fi MAC Address."/>
      <uint32 name="MaxTxRate" description="Maximum supported send rate for this adapter, in kbps" />
      <uint32 name="MaxRxRate" description="Maximum supported receive rate for this adapter, in kbps" />
      <bool name="HardwareRadioState" description="Whether or not the radio is enabled by hardware" />
      <bool name="SoftwareRadioState" description="Whether or not the radio is enabled by software" />
      <bool name="SupportPLR" description="whether the adapter support PLR - Platform Level Reset" />
      <bool name="SupportFLR" description="whether the adapter support FLR - Function Level Reset" />
      <bool name="ActionFramesSupported" description="{0,1} If sending and receiving actions frames is supported. Yes = 1." />
      <uint8 name="NumRxStreams" description="Number of RX spatial streams supported"/>
      <uint8 name="NumTxStreams" description="Number of TX spatial streams supported"/>
      <uint8 name="NumChannels" description="Number of channels the adapter can work concurrently in"/>
      <bool name="AntennaDiversity" description="Whether the adapter supports antenna diversity" />
      <bool name="Support_eCSA" description="Whether the adapter supports eCSA" />
      <bool name="MACAddressRandomization" description="Whether the adapter supports MAC Address Randomization. Yes = 1." />
      <namedType name="MACAddressRandomizationMask" type="WDI_MAC_ADDRESS" description="MAC Address Randomization contraints for some hardware." />
      <namedType name="BluetoothCoexistenceSupport" type="WDI_BLUETOOTH_COEXISTENCE_SUPPORT" description="Bluetooth Coexistence support." />
      <bool name="SupportsNonWdiOidRequests" description="Whether the adapter can handle non-WDI OIDs" />
      <bool name="FastTransitionSupported" description="Whether the adapter can do Fast-Transition association" />
      <bool name="MU_MIMOSupported" description="Whether the adapter supports MU_MIMO" />
      <bool name="CannotSupportMiracastSink" description="True if the device cannot support Miracast Sink" />
      <bool name="BSSTransitionSupported" description="True if the device supports BSS Transition frames" />
      <bool name="IPDockingSupported" description="True if the device supports IP Docking Capability" />
      <bool name="SAEAuthenticationSupported" description="True if the device supports SAE Authentication Capability" />
      <bool name="MBOSupported" description="True if the device supports MBO" />
      <bool name="BeaconReportsImplemented" description="True if the device handles beacon report measurement on its own" />
    </propertyGroup>

    <propertyGroup name="WifiInterfaceAttributesStructV1_0_20" type="WDI_INTERFACE_CAPABILITIESV1_0_20" description="Structure definition for interface Capabilities">
      <uint32 name="MTUSize" description="MTU size" />
      <uint32 name="MaxMultiCastListSize" description="Multicast list size for the adapter" />
      <uint16 name="BackFillSize" description="Backfill Size in Bytes" />
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="Permanent Wi-Fi MAC Address."/>
      <uint32 name="MaxTxRate" description="Maximum supported send rate for this adapter, in kbps" />
      <uint32 name="MaxRxRate" description="Maximum supported receive rate for this adapter, in kbps" />
      <bool name="HardwareRadioState" description="Whether or not the radio is enabled by hardware" />
      <bool name="SoftwareRadioState" description="Whether or not the radio is enabled by software" />
      <bool name="SupportPLR" description="whether the adapter support PLR - Platform Level Reset" />
      <bool name="SupportFLR" description="whether the adapter support FLR - Function Level Reset" />
      <bool name="ActionFramesSupported" description="{0,1} If sending and receiving actions frames is supported. Yes = 1." />
      <uint8 name="NumRxStreams" description="Number of RX spatial streams supported"/>
      <uint8 name="NumTxStreams" description="Number of TX spatial streams supported"/>
      <uint8 name="NumChannels" description="Number of channels the adapter can work concurrently in"/>
      <bool name="AntennaDiversity" description="Whether the adapter supports antenna diversity" />
      <bool name="Support_eCSA" description="Whether the adapter supports eCSA" />
      <bool name="MACAddressRandomization" description="Whether the adapter supports MAC Address Randomization. Yes = 1." />
      <namedType name="MACAddressRandomizationMask" type="WDI_MAC_ADDRESS" description="MAC Address Randomization contraints for some hardware." />
      <namedType name="BluetoothCoexistenceSupport" type="WDI_BLUETOOTH_COEXISTENCE_SUPPORT" description="Bluetooth Coexistence support." />
      <bool name="SupportsNonWdiOidRequests" description="Whether the adapter can handle non-WDI OIDs" />
      <bool name="FastTransitionSupported" description="Whether the adapter can do Fast-Transition association" />
      <bool name="MU_MIMOSupported" description="Whether the adapter supports MU_MIMO" />
      <bool name="CannotSupportMiracastSink" description="True if the device cannot support Miracast Sink" />
      <bool name="BSSTransitionSupported" description="True if the device supports BSS Transition frames" />
      <bool name="IPDockingSupported" description="True if the device supports IP Docking Capability" />
    </propertyGroup>

    <propertyGroup name="WifiInterfaceAttributesStructV1_0_1" type="WDI_INTERFACE_CAPABILITIESV1_0_1" description="Structure definition for interface Capabilities">
      <uint32 name="MTUSize" description="MTU size" />
      <uint32 name="MaxMultiCastListSize" description="Multicast list size for the adapter" />
      <uint16 name="BackFillSize" description="Backfill Size in Bytes" />
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="Permanent Wi-Fi MAC Address."/>
      <uint32 name="MaxTxRate" description="Maximum supported send rate for this adapter, in kbps" />
      <uint32 name="MaxRxRate" description="Maximum supported receive rate for this adapter, in kbps" />
      <bool name="HardwareRadioState" description="Whether or not the radio is enabled by hardware" />
      <bool name="SoftwareRadioState" description="Whether or not the radio is enabled by software" />
      <bool name="SupportPLR" description="whether the adapter support PLR - Platform Level Reset" />
      <bool name="SupportFLR" description="whether the adapter support FLR - Function Level Reset" />
      <bool name="ActionFramesSupported" description="{0,1} If sending and receiving actions frames is supported. Yes = 1." />
      <uint8 name="NumRxStreams" description="Number of RX spatial streams supported"/>
      <uint8 name="NumTxStreams" description="Number of TX spatial streams supported"/>
      <uint8 name="NumChannels" description="Number of channels the adapter can work concurrently in"/>
      <bool name="AntennaDiversity" description="Whether the adapter supports antenna diversity" />
      <bool name="Support_eCSA" description="Whether the adapter supports eCSA" />
      <bool name="MACAddressRandomization" description="Whether the adapter supports MAC Address Randomization. Yes = 1." />
      <namedType name="MACAddressRandomizationMask" type="WDI_MAC_ADDRESS" description="MAC Address Randomization contraints for some hardware." />
      <namedType name="BluetoothCoexistenceSupport" type="WDI_BLUETOOTH_COEXISTENCE_SUPPORT" description="Bluetooth Coexistence support." />
      <bool name="SupportsNonWdiOidRequests" description="Whether the adapter can handle non-WDI OIDs" />
      <bool name="FastTransitionSupported" description="Whether the adapter can do Fast-Transition association" />
      <bool name="MU_MIMOSupported" description="Whether the adapter supports MU_MIMO" />
      <bool name="CannotSupportMiracastSink" description="True if the device cannot support Miracast Sink" />
      <bool name="BSSTransitionSupported" description="True if the device supports BSS Transition frames" />
    </propertyGroup>

    <propertyGroup name="WifiInterfaceAttributesStructV1_0" type="WDI_INTERFACE_CAPABILITIESV1_0" description="Structure definition for interface Capabilities">
      <uint32 name="MTUSize" description="MTU size" />
      <uint32 name="MaxMultiCastListSize" description="Multicast list size for the adapter" />
      <uint16 name="BackFillSize" description="Backfill Size in Bytes" />
      <namedType name="Address" type="WDI_MAC_ADDRESS" description="Permanent Wi-Fi MAC Address."/>
      <uint32 name="MaxTxRate" description="Maximum supported send rate for this adapter, in kbps" />
      <uint32 name="MaxRxRate" description="Maximum supported receive rate for this adapter, in kbps" />
      <bool name="HardwareRadioState" description="Whether or not the radio is enabled by hardware" />
      <bool name="SoftwareRadioState" description="Whether or not the radio is enabled by software" />
      <bool name="SupportPLR" description="whether the adapter support PLR - Platform Level Reset" />
      <bool name="SupportFLR" description="whether the adapter support FLR - Function Level Reset" />
      <bool name="ActionFramesSupported" description="{0,1} If sending and receiving actions frames is supported. Yes = 1." />
      <uint8 name="NumRxStreams" description="Number of RX spatial streams supported"/>
      <uint8 name="NumTxStreams" description="Number of TX spatial streams supported"/>
      <uint8 name="NumChannels" description="Number of channels the adapter can work concurrently in"/>
      <bool name="AntennaDiversity" description="Whether the adapter supports antenna diversity" />
      <bool name="Support_eCSA" description="Whether the adapter supports eCSA" />
      <bool name="MACAddressRandomization" description="Whether the adapter supports MAC Address Randomization. Yes = 1." />
      <namedType name="MACAddressRandomizationMask" type="WDI_MAC_ADDRESS" description="MAC Address Randomization contraints for some hardware." />
      <namedType name="BluetoothCoexistenceSupport" type="WDI_BLUETOOTH_COEXISTENCE_SUPPORT" description="Bluetooth Coexistence support." />
      <bool name="SupportsNonWdiOidRequests" description="Whether the adapter can handle non-WDI OIDs" />
      <bool name="FastTransitionSupported" description="Whether the adapter can do Fast-Transition association" />
      <bool name="MU_MIMOSupported" description="Whether the adapter supports MU_MIMO" />
      <bool name="CannotSupportMiracastSink" description="True if the device cannot support Miracast Sink" />
    </propertyGroup>

    <propertyGroup name="WifiAlgoPairsStruct" type="WDI_ALGO_PAIRS" description="Structure definition for Wifi algorithm pairs">
      <namedType name="AuthAlgorithm" type="WDI_AUTH_ALGORITHM" description="Auth algorithm for this pair." />
      <namedType name="CipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Cipher algorithm for this pair." />
    </propertyGroup>

    <propertyGroup name="WifiStationCapabilitiesStruct" type="WDI_STATION_CAPABILITIES" description="Structure definition for Station capabilities">
      <uint32 name="ScanSSIDListSize" description="Scan SSID List size" />
      <uint32 name="DesiredBSSIDListSize" description="Desired BSSID List size" />
      <uint32 name="DesiredSSIDListSize" description="Desired SSID List size" />
      <uint32 name="PrivacyExemptionListSize" description="Privacy Exemption List size" />
      <uint32 name="KeyMappingTableSize" description="Key Mapping List size" />
      <uint32 name="DefaultKeyTableSize" description="Default Key table size" />
      <uint32 name="WEPKeyValueMaxLength" description="WEP Key value Max length" />
      <uint32 name="MaxNumPerSTA" description="Max num per STA Default key tables" />
      <uint8 name="SupportedQOSFlags" description="Whether or not WMM QOS is supported" />
      <uint8 name="HostFIPSModeImplemented" description="Whether or not host FIPS mode is supported" />
      <uint8 name="MFPCapable" description="Whether or not MFP is supported" />
      <bool name="AutoPowerSaveMode" description="{0,1} if Auto Power Save is supported. Yes = 1." />
      <bool name="BSSListCachemanagement" description="{0,1} If the adapter would maintain the Station BSS List cache. Yes = 1" />
      <bool name="ConnectBSSSelectionOverride" description="{0,1} If on a Station connect the adapter may attempt association to a BSSID that is not specified in the Preferred BSSID list. Yes = 1" />
      <uint32 name="uMaxNetworkOffloadListSize" description="Support number of Network Offload entries" />
      <bool name="HESSIDConnectionSupported" description="{0,1} If ability to connect to HESSIDs is supported. Yes = 1." />
      <bool name="DisconnectedStandbySupported" description="If disconnected standby is supported. Yes = 1" />
      <bool name="FTMAsInitiatorSupport" description="{0,1} If FTM procedures as Initiator are supported. Yes = 1." />
      <uint32 name="FTMNumberOfSupportedTargets" description="Number of target STAs supported per FTM request task." />
      <bool name="HostWPA3FIPSModeEnabled" description="Host-FIPS mode for WPA3 is enabled or not"/>
    </propertyGroup>

    <propertyGroup name="WifiStationCapabilitiesStructV1_1_8" type="WDI_STATION_CAPABILITIESV1_1_8" description="Structure definition for Station capabilities">
      <uint32 name="ScanSSIDListSize" description="Scan SSID List size" />
      <uint32 name="DesiredBSSIDListSize" description="Desired BSSID List size" />
      <uint32 name="DesiredSSIDListSize" description="Desired SSID List size" />
      <uint32 name="PrivacyExemptionListSize" description="Privacy Exemption List size" />
      <uint32 name="KeyMappingTableSize" description="Key Mapping List size" />
      <uint32 name="DefaultKeyTableSize" description="Default Key table size" />
      <uint32 name="WEPKeyValueMaxLength" description="WEP Key value Max length" />
      <uint32 name="MaxNumPerSTA" description="Max num per STA Default key tables" />
      <uint8 name="SupportedQOSFlags" description="Whether or not WMM QOS is supported" />
      <uint8 name="HostFIPSModeImplemented" description="Whether or not host FIPS mode is supported" />
      <uint8 name="MFPCapable" description="Whether or not MFP is supported" />
      <bool name="AutoPowerSaveMode" description="{0,1} if Auto Power Save is supported. Yes = 1." />
      <bool name="BSSListCachemanagement" description="{0,1} If the adapter would maintain the Station BSS List cache. Yes = 1" />
      <bool name="ConnectBSSSelectionOverride" description="{0,1} If on a Station connect the adapter may attempt association to a BSSID that is not specified in the Preferred BSSID list. Yes = 1" />
      <uint32 name="uMaxNetworkOffloadListSize" description="Support number of Network Offload entries" />
      <bool name="HESSIDConnectionSupported" description="{0,1} If ability to connect to HESSIDs is supported. Yes = 1." />
      <bool name="DisconnectedStandbySupported" description="If disconnected standby is supported. Yes = 1" />
      <bool name="FTMAsInitiatorSupport" description="{0,1} If FTM procedures as Initiator are supported. Yes = 1." />
      <uint32 name="FTMNumberOfSupportedTargets" description="Number of target STAs supported per FTM request task." />
    </propertyGroup>

    <propertyGroup name="WifiStationCapabilitiesStructV1_0" type="WDI_STATION_CAPABILITIESV1_0" description="Structure definition for Station capabilities">
      <uint32 name="ScanSSIDListSize" description="Scan SSID List size" />
      <uint32 name="DesiredBSSIDListSize" description="Desired BSSID List size" />
      <uint32 name="DesiredSSIDListSize" description="Desired SSID List size" />
      <uint32 name="PrivacyExemptionListSize" description="Privacy Exemption List size" />
      <uint32 name="KeyMappingTableSize" description="Key Mapping List size" />
      <uint32 name="DefaultKeyTableSize" description="Default Key table size" />
      <uint32 name="WEPKeyValueMaxLength" description="WEP Key value Max length" />
      <uint32 name="MaxNumPerSTA" description="Max num per STA Default key tables" />
      <uint8 name="SupportedQOSFlags" description="Whether or not WMM QOS is supported" />
      <uint8 name="HostFIPSModeImplemented" description="Whether or not host FIPS mode is supported" />
      <uint8 name="MFPCapable" description="Whether or not MFP is supported" />
      <bool name="AutoPowerSaveMode" description="{0,1} if Auto Power Save is supported. Yes = 1." />
      <bool name="BSSListCachemanagement" description="{0,1} If the adapter would maintain the Station BSS List cache. Yes = 1" />
      <bool name="ConnectBSSSelectionOverride" description="{0,1} If on a Station connect the adapter may attempt association to a BSSID that is not specified in the Preferred BSSID list. Yes = 1" />
      <uint32 name="uMaxNetworkOffloadListSize" description="Support number of Network Offload entries" />
      <bool name="HESSIDConnectionSupported" description="{0,1} If ability to connect to HESSIDs is supported. Yes = 1." />
      <bool name="DisconnectedStandbySupported" description="If disconnected standby is supported. Yes = 1" />
    </propertyGroup>

    <propertyGroup name="WifiCountryRegionListStruct" type="WDI_COUNTRY_REGION_LIST" description="Country or Region String">
      <uint8 count="3" name="CountryOrRegionString" description="The country or region code where OperatingClass and ChannelNumber are valid."/>
    </propertyGroup>

    <propertyGroup name="WifiAPCapabilitiesStruct" type="WDI_AP_CAPABILITIES" description="Structure definition for AP capabilities">
      <uint32 name="ScanSSIDListSize" description="Scan SSID List size" />
      <uint32 name="DesiredSSIDListSize" description="Desired SSID List size" />
      <uint32 name="PrivacyExemptionListSize" description="Privacy Exemption List size" />
      <uint32 name="AssociationTableSize" description="Association Table Size" />      
      <uint32 name="KeyMappingTableSize" description="Key Mapping List size" />
      <uint32 name="DefaultKeyTableSize" description="Default Key table size" />
      <uint32 name="WEPKeyValueMaxLength" description="WEP Key value Max length" />
      <bool name="RadarDetectionSupported" description="Does AP support 802.11h radar detection? Not Supported = 0"/>
    </propertyGroup>

    <propertyGroup name="WifiVirtualizationCapabilitiesStruct" type="WDI_VIRTUALIZATION_CAPABILITIES" description="Structure definition for Virtualization capabilities">
      <uint8 name="ExtSTACount" description="Number of supported ExtSTA Ports" />
      <uint8 name="WiFiDirectGroupCount" description="Number of supported Wi-Fi Direct Group Ports" />
      <uint8 name="APCount" description="Number of supported legacy ExtAP ports" />
      <uint8 name="SimultaneousGoCount" description="Maximum number of simultaneous AP/WFD GO supported" />
      <uint8 name="SimultaneousMultiChannelOperationLimit" description="Maximum number of separate channels that the device can operate in and maintain data connections on simultaneously" />
      <uint8 name="SimultaneousSTAWFDClientCount" description="Maximum number of simultaneous STA/WFD Clients" />
    </propertyGroup>

    <propertyGroup name="P2PCapabilitiesStruct" type="WDI_P2P_CAPABILITIES" description="Structure definition for P2P capabilities v1.0.20">
      <uint8 name="ConcurrentGOCount" description="Concurrent GO Count" />
      <uint8 name="ConcurrentClientCount" description="Concurrent Client Count" />
      <uint32 name="WPSVersionSupport" description="WPS Version Support" />
      <bool name="ServiceDiscoverySupported" description="Service Discovery Supported" />
      <bool name="ServiceNameDiscoverySupported" description="Service Name Discovery Supported" />
      <bool name="ServiceInformationDiscoverySupported" description="{0,1} If ability to probe for P2P Service information using GAS protocol is supported. Yes = 1." />
      <uint32 name="ServiceNameAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Name Advertisements using GAS protocol supported. If not supported, 0." />
      <uint32 name="ServiceInformationAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Information Advertisements using GAS protocol supported. If not supported, 0." />
      <bool name="BackgroundDiscoverySupported" description="{0,1} If ability to discover P2P Services in the background is supported. Yes = 1." />
      <bool name="ClientDiscoverabilitySupported" description="Client Discoverability Supported" />
      <bool name="InfrastructureManagementSupported" description="Infrastructure Management Supported" />
      <uint8 name="MaxSecondaryAdapterTypeListSize" description="Max Secondary Adapter Type List Size" />
      <uint8 name="DeviceAddress" count ="6" description="Device address" />
      <uint32 name="DiscoveryFilterListSize" description="GO Client Table Size" />
      <uint8 name="GOClientTableSize" description="WEP Key value Max length" />
      <uint32 name="MaxVendorSpecificExtensionIESize" description="Max bytes of Vendor specific IEs that can be added to WFD management frames" />
      <bool name="PassiveAvailabilityListenStateSupported" description="{0,1} If ability to listen for P2P Services in the background is supported. Yes = 1." />
      <bool name="OperatingChannelUpdatesSupported" description="Whether the adapter supported indicating updates to the GO operating channel(s). No = 0"/>
      <bool name="GOon5GHzBandSupported" description="Whether the adapter supports operating a GO on 5GHz band. No = 0"/>
      <bool name="ASP20ServiceNameDiscoverySupported" description="ASP 2.0 Service Name Discovery Supported. No = 0"/>
      <bool name="ASP20ServiceInformationDiscoverySupported" description="{0,1} If ability to probe for ASP 2.0 Service information using GAS protocol is supported. Yes = 1." />
    </propertyGroup>

    <propertyGroup name="P2PCapabilitiesStructV1_0_10" type="WDI_P2P_CAPABILITIES_V1_0_10" description="Structure definition for P2P capabilities v1.0.10">
      <uint8 name="ConcurrentGOCount" description="Concurrent GO Count" />
      <uint8 name="ConcurrentClientCount" description="Concurrent Client Count" />
      <uint32 name="WPSVersionSupport" description="WPS Version Support" />
      <bool name="ServiceDiscoverySupported" description="Service Discovery Supported" />
      <bool name="ServiceNameDiscoverySupported" description="Service Name Discovery Supported" />
      <bool name="ServiceInformationDiscoverySupported" description="{0,1} If ability to probe for P2P Service information using GAS protocol is supported. Yes = 1." />
      <uint32 name="ServiceNameAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Name Advertisements using GAS protocol supported. If not supported, 0." />
      <uint32 name="ServiceInformationAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Information Advertisements using GAS protocol supported. If not supported, 0." />
      <bool name="BackgroundDiscoverySupported" description="{0,1} If ability to discover P2P Services in the background is supported. Yes = 1." />
      <bool name="ClientDiscoverabilitySupported" description="Client Discoverability Supported" />
      <bool name="InfrastructureManagementSupported" description="Infrastructure Management Supported" />
      <uint8 name="MaxSecondaryAdapterTypeListSize" description="Max Secondary Adapter Type List Size" />
      <uint8 name="DeviceAddress" count ="6" description="Device address" />
      <uint32 name="DiscoveryFilterListSize" description="GO Client Table Size" />
      <uint8 name="GOClientTableSize" description="WEP Key value Max length" />
      <uint32 name="MaxVendorSpecificExtensionIESize" description="Max bytes of Vendor specific IEs that can be added to WFD management frames" />
      <bool name="PassiveAvailabilityListenStateSupported" description="{0,1} If ability to listen for P2P Services in the background is supported. Yes = 1." />
      <bool name="OperatingChannelUpdatesSupported" description="Whether the adapter supported indicating updates to the GO operating channel(s). No = 0"/>
      <bool name="GOon5GHzBandSupported" description="Whether the adapter supports operating a GO on 5GHz band. No = 0"/>
    </propertyGroup>

    <propertyGroup name="P2PCapabilitiesStructV1_0_1" type="WDI_P2P_CAPABILITIES_V1_0_1" description="Structure definition for P2P capabilities">
      <uint8 name="ConcurrentGOCount" description="Concurrent GO Count" />
      <uint8 name="ConcurrentClientCount" description="Concurrent Client Count" />
      <uint32 name="WPSVersionSupport" description="WPS Version Support" />
      <bool name="ServiceDiscoverySupported" description="Service Discovery Supported" />
      <bool name="ServiceNameDiscoverySupported" description="Service Name Discovery Supported" />
      <bool name="ServiceInformationDiscoverySupported" description="{0,1} If ability to probe for P2P Service information using GAS protocol is supported. Yes = 1." />
      <uint32 name="ServiceNameAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Name Advertisements using GAS protocol supported. If not supported, 0." />
      <uint32 name="ServiceInformationAdvertisementsMaxBytesSupported" description="Maximum bytes of Service Information Advertisements using GAS protocol supported. If not supported, 0." />
      <bool name="BackgroundDiscoverySupported" description="{0,1} If ability to discover P2P Services in the background is supported. Yes = 1." />
      <bool name="ClientDiscoverabilitySupported" description="Client Discoverability Supported" />
      <bool name="InfrastructureManagementSupported" description="Infrastructure Management Supported" />
      <uint8 name="MaxSecondaryAdapterTypeListSize" description="Max Secondary Adapter Type List Size" />
      <uint8 name="DeviceAddress" count ="6" description="Device address" />
      <uint32 name="DiscoveryFilterListSize" description="GO Client Table Size" />
      <uint8 name="GOClientTableSize" description="WEP Key value Max length" />
      <uint32 name="MaxVendorSpecificExtensionIESize" description="Max bytes of Vendor specific IEs that can be added to WFD management frames" />
      <bool name="PassiveAvailabilityListenStateSupported" description="{0,1} If ability to listen for P2P Services in the background is supported. Yes = 1." />
      <bool name="OperatingChannelUpdatesSupported" description="Whether the adapter supported indicating updates to the GO operating channel(s). No = 0"/>
    </propertyGroup>

    <propertyGroup name="DatapathCapabilitiesStruct" type="WDI_DATAPATH_CAPABILITIES" description="Structure definition for Data Path capabilities">
      <uint32 name="InterconnectType" description="Interconnect Type" />
      <uint8 name="MaxNumPeers" description="Max Num Peers" />
      <uint8 name="TxTargetPriorityQueueing" description="Tx Target priority queueing" />
      <uint16 name="TxMaxScatterGatherElementsPerFrame" description="Tx Max Scatter Gather elements per frame" />
      <uint8 name="TxExplicitSendCompleteFlagRequired" description="Tx Explicit Send Complete Flag Required" />
      <uint16 name="TxMinEffectiveFrameSize" description="Tx Min Effective Frame Size" />      
      <uint16 name="TxFrameSizeGranularity" description="Tx Frame Size Granularity" />
      <uint8 name="RxTxForwarding" description="Rx Tx Forwarding" />
      <uint32 name="RxMaxThroughput" description="Rx Max Throughput" />
    </propertyGroup>
    
    <propertyGroup name="BandCapabilitiesStruct" type="WDI_BAND_CAPABILITIES" description="Structure definition for BSS Entry Channel Information.">
      <namedType type="WDI_BAND_ID" name="BandID" description="Identifier for this band " />
      <bool name="BandState" description="Whether or not this band is enabled" />
    </propertyGroup>

    <propertyGroup name="PhyCapabilitiesStruct" type="WDI_PHY_CAPABILITIES" description="Structure definition for WIFI PHY capabilities">
      <namedType name="PhyType" type="WDI_PHY_TYPE" description="PHY types" />
      <uint8 name="SupportsCFPoll" description="Whether or not this phy supports CF Poll" />
      <uint32 name="MPDUMaxLength" description="MPDU Max Length" />
      <uint32 name="TemperatureClass" description="Temperature Class" />
      <uint32 name="DiversitySupport" description="Diversity Support" />
    </propertyGroup>

    <propertyGroup name="PmCapabilitiesStruct" type="WDI_PM_CAPABILITIES" description="Structure definition for PM capabilities">
      <uint32 name="Flags" description="Flags" />
      <uint32 name="SupportedWoLPacketPatterns" description="Supported WoL Packet Patterns" />
      <uint32 name="NumTotalWoLPatterns" description="Num Total WoL Patterns" />
      <uint32 name="MaxWoLPatternSize" description="Max WoL PatternSize" />
      <uint32 name="MaxWoLPatternOffset" description="Max WoL Pattern Offset" />
      <uint32 name="MaxWoLPacketSaveBuffer" description="Max WoL Packet Save Buffer" />
      <uint32 name="SupportedProtocolOffloads" description="Supported Protocol Offloads" />      
      <uint32 name="NumArpOffloadIPv4Addresses" description="Num Arp Offload IPv4Addresses" />
      <uint32 name="NumNSOffloadIPv6Addresses" description="Num NS Offload IPv6Addresses" />
      <enum name="MinMagicPacketWakeUp" type="NDIS_DEVICE_POWER_STATE" description="Min Magic Packet WakeUp" />
      <enum name="MinPatternWakeUp" type="NDIS_DEVICE_POWER_STATE" description="Min Pattern WakeUp" />
      <enum name="MinLinkChangeWakeUp" type="NDIS_DEVICE_POWER_STATE" description="Min Link Change WakeUp" />
      <uint32 name="SupportedWakeUpEvents" description="Supported Wake Up Events" />
      <uint32 name="MediaSpecificWakeUpEvents" description="Media Specific Wake Up Events" />
    </propertyGroup>
    
    <propertyGroup name="ReceiveCoalescingCapabilitiesStruct" type="WDI_RECEIVE_COALESCING_CAPABILITIES" description="Structure definition for RECEIVE COALESCING capabilities">
      <uint32 name="EnableFilterTypes" description="EnableFilterTypes" />
      <uint32 name="EnabledQueueTypes" description="EnabledQueueTypes" />
      <uint32 name="NumQueues" description="NumQueues" />
      <uint32 name="SupportedQueueProperties" description="SupportedQueueProperties" />
      <uint32 name="SupportedFilterTests" description="SupportedFilterTests" />
      <uint32 name="SupportedHeaders" description="SupportedHeaders" />
      <uint32 name="SupportedMacHeaderFields" description="SupportedMacHeaderFields" />      
      <uint32 name="MaxMacHeaderFilters" description="MaxMacHeaderFilters" />
      <uint32 name="MaxQueueGroups" description="MaxQueueGroups" />
      <uint32 name="MaxQueuesPerQueueGroup" description="MaxQueuesPerQueueGroup" />
      <uint32 name="MinLookaheadSplitSize" description="MinLookaheadSplitSize" />
      <uint32 name="MaxLookaheadSplitSize" description="MaxLookaheadSplitSize" />
      <uint32 name="SupportedARPHeaderFields" description="SupportedARPHeaderFields" />
      <uint32 name="SupportedIPv4HeaderFields" description="SupportedIPv4HeaderFields" />
      <uint32 name="SupportedIPv6HeaderFields" description="SupportedIPv6HeaderFields" />
      <uint32 name="SupportedUdpHeaderFields" description="SupportedUdpHeaderFields" />
      <uint32 name="MaxFieldTestsPerPacketCoalescingFilter" description="MaxFieldTestsPerPacketCoalescingFilter" />
      <uint32 name="MaxPacketCoalescingFilters" description="MaxPacketCoalescingFilters" />
    </propertyGroup>

    <propertyGroup name="DataRateListStruct" type="WDI_DATA_RATE_LIST" description="Structure definition for Data rate list">
      <uint8 name="DataRateFlag" description="DataRateFlag" />
      <uint16 name="DataRateValue" description="DataRateValue" />      
    </propertyGroup>    

    <propertyGroup name="ChecksumV4parametersStruct" type="WDI_CHECKSUM_OFFLOAD_V4_PARAMETERS" description="Structure definition for Checksum Offload ipv4">
      <uint32 name="Encapsulation" description="Encapsulation settings" />
      <uint32 name="IpOptionsSupported" description="Support offload of checksum with IP options" />   
      <uint32 name="TcpOptionsSupported" description="Support offload of checksum with TCP options" />
      <uint32 name="TcpChecksum" description="Whether or not TCP Checksum offload is enabled" />
      <uint32 name="UdpChecksum" description="Whether or not UDP offload is enabled" />
      <uint32 name="IpChecksum" description="Whether or not IP Checksum is enabled" />
    </propertyGroup>

    <propertyGroup name="SetOffloadParametersStruct" type="WDI_SET_TCP_OFFLOAD_PARAMS_PARAMETERS_STRUCT" description="Structure definition for TCP Offload Params">
      <uint8 name="IPv4Checksum" description="IpV4 checksum" />
      <uint8 name="TCPIPv4Checksum" description="TCP IpV4 Checksum" />
      <uint8 name="UDPIPv4Checksum" description="UDP Ipv4 Checksum" />
      <uint8 name="TCPIPv6Checksum" description="TCP IpV6 Checksum" />
      <uint8 name="UDPIPv6Checksum" description="UDP Ipv6 Checksum" />
      <uint8 name="LsoV1" description="Whether or not LSO V1 enabled" />
      <uint8 name="IPsecV1" description="IPsecV1" />
      <uint8 name="LsoV2IPv4" description="LsoV2IPv4" />
      <uint8 name="LsoV2IPv6" description="LsoV2IPv6" />
      <uint8 name="TcpConnectionIPv4" description="TcpConnectionIPv4" />
      <uint8 name="TcpConnectionIPv6" description="TcpConnectionIPv6" />
      <uint8 name="RscIPv4" description="RscIPv4" />
      <uint8 name="RscIPv6" description="RscIPv6" />
      <uint32 name="Flags" description="Flags" />
      <uint8 name="IPsecV2" description="IPsecV2" />
      <uint8 name="IPsecV2IPv4" description="IPsecV2IPv4" />
      <uint8 name="EncapsulatedPacketTaskOffload" description="EncapsulatedPacketTaskOffload" />
      <uint8 name="EncapsulationTypes" description="EncapsulationTypes" />
    </propertyGroup>

    <propertyGroup name="ChecksumV6parametersStruct" type="WDI_CHECKSUM_OFFLOAD_V6_PARAMETERS" description="Structure definition for Checksum Offload ipv4">
      <uint32 name="Encapsulation" description="Encapsulation settings" />
      <uint32 name="IpExtensionHeadersSupported" description="Support offload of checksum of packets with IP extention header" />   
      <uint32 name="TcpOptionsSupported" description="Support offload of checksum with TCP options" />
      <uint32 name="TcpChecksum" description="Whether or not TCP Checksum offload is enabled" />
      <uint32 name="UdpChecksum" description="Whether or not UDP offload is enabled" />
    </propertyGroup>

    <propertyGroup name="LSOV1ParametersStruct" type="WDI_LSO_V1_CAPABILITIES" description="Structure definition for LSOV1 Offload">
      <uint32 name="Encapsulation" description="Encapsulation capabilities" />
      <uint32 name="MaxOffLoadSize" description="Max bytes of TCP user data per packet" />   
      <uint32 name="MinSegmentCount" description="The minimum number of segments that a large TCP packet must be divisible by before the transport can offload it to the hardware for segmentation" />
      <uint32 name="TcpOptions" description="Whether or not TCP options supported for this offload" />
      <uint32 name="IpOptions" description="Whether or not IP options supported for this offload" />
    </propertyGroup>

    <propertyGroup name="Ipv4LSOParametersStruct" type="WDI_IPV4_LSO_V2" description="Structure definition for LSOV2 Offload ipv4">
      <uint32 name="EncapsulationV4" description="Encapsulation capabilities" />
      <uint32 name="MaxOffloadSizeV4" description="Max bytes of TCP user data per packet" />   
      <uint32 name="MinSegmentCountV4" description="Minimum number of segments that should be present after segmentation" />
    </propertyGroup>
      
    <propertyGroup name="Ipv6LSOParametersStruct" type="WDI_IPV6_LSO_V2" description="Structure definition for LSOV2 Offload ipv6">
      <uint32 name="EncapsulationV6" description="Encapsulation capabilities" />
      <uint32 name="MaxOffloadSizeV6" description="Max bytes of TCP user data per packet" />   
      <uint32 name="MinSegmentCountV6" description="Minimum number of segments that should be present after segmentation" />
      <uint32 name="IpExtensionHeadersSupported" description="Whether or not IP extension headers are supported" />
      <uint32 name="TcpOptionsSupported" description="Whether or not TCP Options are supported in this offload" />
    </propertyGroup>

    <propertyGroup name="ReceiveOffloadParametersStruct" type="WDI_RECEIVE_COALESCE_OFFLOAD_CAPABILITIES" description="Structure definition for Receive offload">
      <uint8 name="Ipv4Enabled" description="Whether or not Rx Coalesce is enabled for V4" />
      <uint8 name="Ipv6Enabled" description="Whether or not Rx Coalesce is enabled for V6" />   
    </propertyGroup>

    <propertyGroup name="OffloadScopeParametersStruct" type="WDI_OFFLOAD_SCOPE" description="Structure definition for Offload Scope">
      <uint8 name="ChecksumOffloadSupportedOnAllPorts" description="Whether Checksum Offload params are applicable on all ports" />
      <uint8 name="LsoV1OffloadSupportedOnAllPorts" description="Whether LsoV1 Offload params are applicable on all ports" />
      <uint8 name="LsoV2OffloadSupportedOnAllPorts" description="Whether LsoV2 Offload params are applicable on all ports" />
      <uint8 name="RscOffloadSupportedOnAllPorts" description="Whether RSC Offload params are applicable on all ports" />
    </propertyGroup>

    <propertyGroup name="P2PSendActionFrameResponseParamsStruct" type="WDI_P2P_SEND_ACTION_FRAME_RESPONSE_PARAMETERS" description="Structure definition for Action Frame Response Parameters">
      <namedType name="ResponseFrameType" type="WDI_P2P_ACTION_FRAME_TYPE" description="Type of Response Frame to be sent." />
      <namedType name="PeerDeviceAddress" type="WDI_MAC_ADDRESS" description="Device address of target peer P2P device." />
      <uint8 name="DialogToken" description="Wi-Fi Direct Dialog Token for this transaction." />
      <uint32 name="SendTimeout" description="Maximum time, in milliseconds to send this action frame." />
      <uint32 name="PostACKDwellTime" description="Time to remain on listen channel, in milliseconds after the incoming packet is acknowledged." />
    </propertyGroup>

    <propertyGroup name="P2PGONegotiationResponseParamsStruct" type="WDI_P2P_GO_NEGOTIATION_RESPONSE_PARAMETERS" description="Structure definition for GO Negotiation Response Parameters">
      <uint8 name="StatusCode" description="Wi-Fi Direct Status Code, as defined by the Wi-Fi Direct specification." />
      <uint8 name="GOIntent" description="Local Wi-Fi Direct Group Owner Intent. This shall be a value between 0 and 15." />
      <bool name="TieBreaker" description="Tie breaker field of GO Intent." />
      <uint16 name="GOConfigTimeout" description="GO Configuration Timeout in milliseconds." />
      <uint16 name="ClientConfigTimeout" description="Client Configuration Timeout in milliseconds." />
      <namedType name="IntendedInterfaceAddress" type="WDI_MAC_ADDRESS" description="Local MAC Address for future Wi-Fi Direct connection."/>
      <uint8 name="GroupCapability" description="Wi-Fi Direct Group capability bitmask." />
      <uint8 name="OSSetGroupCapabilityBitmask" description="Wi-Fi Direct Group Capabilities set by the OS." />
    </propertyGroup>

    <propertyGroup name="P2PGONegotiationConfirmationParamsStruct" type="WDI_P2P_GO_NEGOTIATION_CONFIRMATION_PARAMETERS" description="Structure definition for GO Negotiation Confirmation Parameters">
      <uint8 name="StatusCode" description="Wi-Fi Direct Status Code, as defined by the Wi-Fi Direct specification." />
      <uint8 name="GroupCapability" description="Wi-Fi Direct Group capability bitmask." />
      <uint8 name="OSSetGroupCapabilityBitmask" description="Wi-Fi Direct Group Capabilities set by the OS." />
    </propertyGroup>

    <propertyGroup name="P2PInvitationResponseParamsStruct" type="WDI_P2P_INVITATION_RESPONSE_PARAMETERS" description="Structure definition for Invitation Response Parameters">
      <uint8 name="StatusCode" description="Wi-Fi Direct Status Code, as defined by the Wi-Fi Direct specification." />
      <uint16 name="GOConfigTimeout" description="GO Configuration Timeout in milliseconds." />
      <uint16 name="ClientConfigTimeout" description="Client Configuration Timeout in milliseconds." />
    </propertyGroup>

    <propertyGroup name="P2PIncomingFrameParamsStruct" type="WDI_P2P_INCOMING_ACTION_FRAME_PARAMETERS" description="Structure definition for Incoming Action Frame Parameters">
      <namedType name="ActionFrameType" type="WDI_P2P_ACTION_FRAME_TYPE" description="Type of Incoming P2P Action Frame." />
      <namedType name="PeerDeviceAddress" type="WDI_MAC_ADDRESS" description="Remote Peer's MAC Address"/>
      <uint8 name="DialogToken" description="Wi-Fi Direct Dialog Token for this transaction." />
    </propertyGroup>

    <propertyGroup name="APAssociationResponseParametersStruct" type="WDI_AP_ASSOCIATION_RESPONSE_PARAMETERS" description="Structure definition for Association Response Paramaters.">
      <bool name="AcceptRequest" description="Whether or not to accept this association request." />
      <uint16 name="ReasonCode" description="If Accept Request is FALSE, this field provides a reason code to send back to the peer adapter." />
    </propertyGroup>

    <propertyGroup name="APAssociationRequestParametersStruct" type="WDI_AP_ASSOCIATION_REQUEST_PARAMETERS" description="Structure definition for Association Request Paramaters.">
      <namedType name="PeerMacAddress" type="WDI_MAC_ADDRESS" description="MAC address of sender." />
      <bool name="IsReassociationRequest" description="Whether or not this is a re-association request." />
    </propertyGroup>

    <propertyGroup name="DisconnectParamsStruct" type="WDI_DISCONNECT_PARAMETERS" description="Structure definition for disconnect parameters.">
      <namedType name="MacAddress" type="WDI_MAC_ADDRESS" description="MAC address of the peer to disassociate." />
      <uint16 name="Disassociation80211Reason" description="Reason for this host-triggered disassociation. This value is provided in little endian byte order, should be appropriately copied into the reason code of the outgoing frame." />
    </propertyGroup>

    <propertyGroup name="P2PSendActionFrameResultParametersStruct" type="WDI_P2P_SEND_ACTION_FRAME_RESULT_PARAMETERS" description="Structure definition for send action frame result parameters">
      <namedType name="PeerDeviceAddress" type="WDI_MAC_ADDRESS" description="Device Address of the target P2P Device." />
      <uint8 name="DialogToken" description="Dialog token for this transaction." />
    </propertyGroup>

    <propertyGroup name="AssocResponseResultParametersStruct" type="WDI_ASSOC_RESULT_PARAMETERS" description="Structure definition for association response result parameters.">
      <namedType name="PeerMACAddress" type="WDI_MAC_ADDRESS" description="MAC address for peer adapter." />
      <bool name="IsReassociationRequest" description="A bit value that indicates whether the request from the peer station is a re-association request. This should be true if a reassociation request was used." />
      <bool name="IsReAssociationResponse" description="A bit value that indicates whether the response to the peer is a re-association response. This should be true if a reassociation request was used" />
      <namedType name="AuthAlgorithm" type="WDI_AUTH_ALGORITHM" description="Auth algorithm for this association." />
      <namedType name="UnicastCipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Unicast cipher algorithm for this association." />
      <namedType name="MulticastCipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Multicast cipher algorithm for this association." />
    </propertyGroup>

    <propertyGroup name="DisconnectIndicationParamsStruct" type="WDI_DISCONNECT_INDICATION_PARAMETERS" description="Structure definition for disconnect indication parameters.">
      <namedType name="MacAddress" type="WDI_MAC_ADDRESS" description="MAC address of the peer that was disassociated." />
      <enum name="DisassociationWABIReason" type="WDI_ASSOC_STATUS" description="Disassociation reason" />
    </propertyGroup>

    <propertyGroup name="RadioStatusStruct" type="WDI_RADIO_STATUS" description="Structure definition for radio status.">
      <bool name="HardwareState" description="The current state of the radio in hardware"/>
      <bool name="SoftwareState" description="The current state of the radio in software"/>
    </propertyGroup>

    <propertyGroup name="CipherKeyIdStruct" type="WDI_CIPHER_KEY_ID_STRUCT" description="Structure definition for Cipher Key ID">
      <uint32 name="CipherKeyID" description="ID for this key. At least one of PeerMacAddress or CipherKeyID must be present."/>      
    </propertyGroup>

    <propertyGroup name="CipherKeyTypeStruct" type="WDI_CIPHER_KEY_TYPE_STRUCT" description="Structure definition for Cipher Key Type.">
      <namedType name="CipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Specifies the cipher algorithm that uses this key"/>
      <namedType name="Direction" type="WDI_CIPHER_KEY_DIRECTION" description="Specifies whether the key should be used for transmit only or receive only or both"/>
      <uint8 name="Static" description="Specifies whether the port should delete the key on a roam. If set to FALSE, the key must be delete when the port disconnects from the BSS network or connects to this BSS network. Else it should be deleted on an explicit delete or on a reset request." />
      <namedType name="KeyType" type="WDI_CIPHER_KEY_TYPE" description="The type of key being published."/>
    </propertyGroup>

    <propertyGroup name="ReceiveSequenceCountStruct" type="WDI_RECEIVE_SEQUENCE_COUNT_STRUCT" description="Structure definition for Receive sequence count">
      <uint8 count="6" name="ReceiveSequenceCount" description="The initial 48-bit value of Packet Number (PN), which is used for replay protection. "/>
    </propertyGroup>

    <propertyGroup name="SendActionFrameRequestParamsStruct" type="WDI_ACTION_FRAME_REQUEST_PARAMETERS" description="Structure definition for Action Frame Request Send Parameters.">
      <namedType type="WDI_CHANNEL_NUMBER" name="ChannelNumber" description="The channel number to send this action frame on" />
      <namedType type="WDI_BAND_ID" name="BandId" description="The band ID to send this action frame on" />
      <namedType name="DestinationAddress" type="WDI_MAC_ADDRESS" description="Destination address to send this action frame on" />
      <uint32 name="SendTimeout" description="Maximum time, in milliseconds to send this action frame" />
      <uint32 name="PostACKDwellTime" description="Time to remain on listen channel, in milliseconds after the incoming packet is acknowledged" />
    </propertyGroup>

    <propertyGroup name="ConnectionSettingsStruct" type="WDI_CONNECTION_SETTINGS" description="Structure definition for connection settings.">
      <bool name="RoamRequest" description="Specifies if this is a first time connection or a roam request"/>
      <bool name="HiddenNetwork" description="Specifies if this is a hidden network or not"/>
      <bool name="ExcludeUnencrypted" description="Sets the dot11ExcludeUnencrypted MIB"/>
      <bool name="MFPEnabled" description="802.11w capabilities must be advertised only if this is TRUE"/>
      <bool name="HostFIPSModeEnabled" description="Host-FIPS mode is enabled or not"/>
      <uint32 name="RoamNeededReason" description="Roaming needed reason"/>
      <namedType name="RoamTrigger" type="WDI_ROAM_TRIGGER" description="Whether this roam is a critical roam because the AP has set the DisassociationImminent bit set in its BSS Transition Request action frame"/>
      <bool name="BSSTransitionSupported" description="Whether or not 11v BSS transition is supported. The Station must set the BSS Transition field of the Extended capabilities element (Bit 19) to 1 in the association request if this field is non-zero."/>
    </propertyGroup>

    <propertyGroup name="ConnectionSettingsStructV1_0" type="WDI_CONNECTION_SETTINGSV1_0" description="Structure definition for connection settings.">
      <bool name="RoamRequest" description="Specifies if this is a first time connection or a roam request"/>
      <bool name="HiddenNetwork" description="Specifies if this is a hidden network or not"/>
      <bool name="ExcludeUnencrypted" description="Sets the dot11ExcludeUnencrypted MIB"/>
      <bool name="MFPEnabled" description="802.11w capabilities must be advertised only if this is TRUE"/>
      <bool name="HostFIPSModeEnabled" description="Host-FIPS mode is enabled or not"/>
      <uint32 name="RoamNeededReason" description="Roaming needed reason"/>
      <namedType name="RoamTrigger" type="WDI_ROAM_TRIGGER" description="Whether this roam is a critical roam because the AP has set the DisassociationImminent bit set in its BSS Transition Request action frame"/>
    </propertyGroup>
    
    <propertyGroup name="BSSSelectionParametersStruct" type="WDI_BSS_SELECTION_PARAMETERS_CONTAINER" description="Structure for BSS Selection Parameters">
      <uint32 name="SelectionFlags" description="Flags specifying BSS selection parameters." />
    </propertyGroup>

    <propertyGroup name="AssociationResultParametersStruct" type="WDI_ASSOCIATION_RESULT_PARAMETERS" description="Structure definition for association results.">
      <namedType name="AssociationStatus" type="WDI_ASSOC_STATUS" description="Association status"/>
      <uint32 name="StatusCode" description="Status code from peer" />      
      <bool name="ReAssociation" description="Specifies if this is a reassociation request or not"/>
      <namedType name="AuthAlgorithm" type="WDI_AUTH_ALGORITHM" description="Negotiated authentication algorithm"/>
      <namedType name="UnicastCipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Negotiated unicast cipher algorithm"/>
      <namedType name="MulticastDataCipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Negotiated multicast data cipher algorithm"/>	
      <namedType name="MulticastMgmtCipherAlgorithm" type="WDI_CIPHER_ALGORITHM" description="Negotiated multicast management cipher algorithm"/>	
      <bool name="FourAddressSupported" description="Specifies whether four address format is supported"/>
      <bool name="PortAuthorized" description="Specifies whether port authorization has been performed"/>
      <bool name="WMMQoSEnabled" description="Specifies whether WMM QoS has been negotiated"/>
      <namedType name="DSInfo" type="WDI_DS_INFO" description="Specifies whether the port is connected to same DS as before"/>	
      <uint32 name="AssociationComebackTime" description="Comeback time requested by the peer" />  
      <namedType type="WDI_BAND_ID" name="BandID" description="Band ID on which the association is established"/>
      <uint32 name="IHVAssociationStatus" description="IHV defined status code for a failed association" />
    </propertyGroup>

    <propertyGroup name="TkipMicFailureParametersStruct" type="WDI_TKIP_MIC_FAILURE_PARAMETERS" description="TKIP MIC failure parameters.">
      <bool name="DefaultKeyFailure" description="Default key or key mapped key failure?" />
      <uint32 name="KeyIndex" description="Default Key Index (0-3)" />
      <namedType name="PeerMacAddress" type="WDI_MAC_ADDRESS" description="Peer MAC address" />
    </propertyGroup>

    <!--++ NLO-->
    <propertyGroup name="NetworkListOffloadConfigStruct" type="WDI_NETWORK_LIST_OFFLOAD_CONFIG" description="struct for network list offload config" >
      <uint32 name="ulFlags" description="bit flags reserved" />
      <uint32 name="DelayStartInSeconds" description="elapsed time before starting scan periodical timers" />
      <uint32 name="FastScanPeriodinSeconds" description="periodical scan in fast scan phase" />
      <uint32 name="FastScanIterations" description="number of iterations in fast scan phase" />
      <uint32 name="SlowScanPeriodinSeconds" description="periodical scan in slow scan phase" />
    </propertyGroup>
    <!-- NLO-->

    <propertyGroup name="WakeEventMaskStruct" type="WDI_WAKE_EVENT_MASK" description="struct for wake event mask" >
      <uint32 name="EnabledWoLPacketPatterns" description="NDIS_PM_WOL_XXX_ENABLED flags" />
      <uint32 name="EnabledProtocolOffloads" description="NDIS_PM_PROTOCOL_OFFLOAD_XXX_ENABLED flags" />
      <uint32 name="WakeUpFlags" description="NDIS_PM_WAKE_ON_XXX_ENABLED flags" />
      <uint32 name="MediaSpecificWakeUpEvents" description="NDIS_{WLAN|WWAN}_WAKE_ON_XXX_ENABLED flags" />
    </propertyGroup>  

    <!--++ Coalesce-->
    <propertyGroup name="ReceiveCoalescingConfigStruct" type="WDI_RECEIVE_COALESCING_CONFIG" description="Struct for receive coalescing config" >
      <uint32 name="QueueId" description="queue id"/>
      <uint32 name="FilterId" description="filter id" />
      <uint32 name="MaxCoalescingDelay" description="max coalesce delay" />
    </propertyGroup>

    <propertyGroup name="ReceiveCoalescingFieldStruct" type="WDI_RECEIVE_COALESCING_FIELD" description="Struct for receive coalescing field" >
      <uint32 name="Flags" description="A bitwise OR of flags"/>
      <enum name="FrameHeader" type="NDIS_FRAME_HEADER" description="frame header"/>
      <enum name="ReceiveFilterTest" type="NDIS_RECEIVE_FILTER_TEST" description="flter test" />
      <uint32 name="HeaderField" description="Protocol specific header field, one of NDIS_MAC_HEADER_FIELD, NDIS_ARP_HEADER_FIELD, NDIS_IPV4_HEADER_FIELD, NDIS_IPV6_HEADER_FIELD, or NDIS_UDP_HEADER_FIELD"/>
      <namedType name="FieldValue" type="WDI_BYTE16" description="filter value" />
      <namedType name="ResultValue" type="WDI_BYTE16" description="result value" />
    </propertyGroup>
    <!-- Coalesce-->

    <!--++ WOL -->
    <propertyGroup name="IPv4TcpSyncStruct" type="WDI_IPv4_TCP_SYNC" description="struct for IPv4 TCP SYNC" >
      <uint32 name="PatternId" description="pattern id"/>
      <namedType name="IPv4SourceAddr" type="WDI_BYTE4" description="IPv4 Source Address" />
      <namedType name="IPv4DestAddr" type="WDI_BYTE4" description="IPv4 destination address" />
      <uint16 name="TcpSourcePort" description="TCP source port" />
      <uint16 name="TcpDestPort" description="TCP dest port" />
    </propertyGroup>  

    <propertyGroup name="IPv6TcpSyncStruct" type="WDI_IPv6TCP_SYNC" description="struct for IPv6TCP SYNC" >
      <uint32 name="PatternId" description="pattern id"/>
      <namedType name="IPv6SourceAddr" type="WDI_BYTE16" description="IPv6 Source Address" />
      <namedType name="IPv6DestAddr" type="WDI_BYTE16" description="IPv6 destination address" />
      <uint16 name="TcpSourcePort" description="TCP source port" />
      <uint16 name="TcpDestPort" description="TCP dest port" />
    </propertyGroup>  
    <!-- WOL -->

    <propertyGroup name="GuidStruct" type="WDI_GUID" description="struct for a GUID" >
      <namedType name="Guid" type="GUID" description="A GUID entry" />
    </propertyGroup>

    <propertyGroup name="OsPowerMgmtStruct" type="WDI_OS_POWER_MANAGEMENT_FEATURES" description="Structure definition for OS power management features">
      <enum name="EnableFlags" type="WDI_OS_POWER_MANAGEMENT_FLAGS" description="OS power management enablement flags"/>
    </propertyGroup>
      
  </propertyGroups>  

</WABIModel>
