' ########################################################################################
' Microsoft Windows
' File: WcnTypes.inc
' Contents: Defines basic types and constants for WCN API
' Copyright (c) 2011 Jos? Roca
' Portions Copyright (c) Microsoft Corporation.
' All Rights Reserved.
' THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER
' EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE IMPLIED WARRANTIES OF
' MERCHANTABILITY AND/OR FITNESS FOR A PARTICULAR PURPOSE.
' ########################################################################################
#IF NOT %DEF(PBX_WcnTypes_PBI)
#DEFINE PBX_WcnTypes_PBI
%EQUATE `WCNTYPES_INC = 1
'//
'// WCN API error codes
'//
'#define WCN_E_PEER_NOT_FOUND MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C01)
'#define WCN_E_AUTHENTICATION_FAILED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C02)
'#define WCN_E_CONNECTION_REJECTED MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C03)
'#define WCN_E_SESSION_TIMEDOUT MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C04)
'#define WCN_E_PROTOCOL_ERROR MAKE_HRESULT(SEVERITY_ERROR, FACILITY_ITF, 0x3C05)
%EQUATE `WCN_E_PEER_NOT_FOUND = &H80043C01
%EQUATE `WCN_E_AUTHENTICATION_FAILED = &H80043C02
%EQUATE `WCN_E_CONNECTION_REJECTED = &H80043C03
%EQUATE `WCN_E_SESSION_TIMEDOUT = &H80043C04
%EQUATE `WCN_E_PROTOCOL_ERROR = &H80043C05
'//
'// FD Query Constraint:
'// Turn on SoftAP and listen for wireless devices
'//
$$WCN_QUERY_CONSTRAINT_USE_SOFTAP = "WCN.Discovery.SoftAP"$$
'//
'// List of defined WCN attribute types.
'// These are based off of WPS TLV types.
'//
' enum WCN_ATTRIBUTE_TYPE
%EQUATE `WCN_TYPE_AP_CHANNEL = 0
%EQUATE `WCN_TYPE_ASSOCIATION_STATE = %WCN_TYPE_AP_CHANNEL + 1
%EQUATE `WCN_TYPE_AUTHENTICATION_TYPE = %WCN_TYPE_ASSOCIATION_STATE + 1
%EQUATE `WCN_TYPE_AUTHENTICATION_TYPE_FLAGS = %WCN_TYPE_AUTHENTICATION_TYPE + 1
%EQUATE `WCN_TYPE_AUTHENTICATOR = %WCN_TYPE_AUTHENTICATION_TYPE_FLAGS + 1
%EQUATE `WCN_TYPE_CONFIG_METHODS = %WCN_TYPE_AUTHENTICATOR + 1
%EQUATE `WCN_TYPE_CONFIGURATION_ERROR = %WCN_TYPE_CONFIG_METHODS + 1
%EQUATE `WCN_TYPE_CONFIRMATION_URL4 = %WCN_TYPE_CONFIGURATION_ERROR + 1
%EQUATE `WCN_TYPE_CONFIRMATION_URL6 = %WCN_TYPE_CONFIRMATION_URL4 + 1
%EQUATE `WCN_TYPE_CONNECTION_TYPE = %WCN_TYPE_CONFIRMATION_URL6 + 1
%EQUATE `WCN_TYPE_CONNECTION_TYPE_FLAGS = %WCN_TYPE_CONNECTION_TYPE + 1
%EQUATE `WCN_TYPE_CREDENTIAL = %WCN_TYPE_CONNECTION_TYPE_FLAGS + 1
%EQUATE `WCN_TYPE_DEVICE_NAME = %WCN_TYPE_CREDENTIAL + 1
%EQUATE `WCN_TYPE_DEVICE_PASSWORD_ID = %WCN_TYPE_DEVICE_NAME + 1
%EQUATE `WCN_TYPE_E_HASH1 = %WCN_TYPE_DEVICE_PASSWORD_ID + 1
%EQUATE `WCN_TYPE_E_HASH2 = %WCN_TYPE_E_HASH1 + 1
%EQUATE `WCN_TYPE_E_SNONCE1 = %WCN_TYPE_E_HASH2 + 1
%EQUATE `WCN_TYPE_E_SNONCE2 = %WCN_TYPE_E_SNONCE1 + 1
%EQUATE `WCN_TYPE_ENCRYPTED_SETTINGS = %WCN_TYPE_E_SNONCE2 + 1
%EQUATE `WCN_TYPE_ENCRYPTION_TYPE = %WCN_TYPE_ENCRYPTED_SETTINGS + 1
%EQUATE `WCN_TYPE_ENCRYPTION_TYPE_FLAGS = %WCN_TYPE_ENCRYPTION_TYPE + 1
%EQUATE `WCN_TYPE_ENROLLEE_NONCE = %WCN_TYPE_ENCRYPTION_TYPE_FLAGS + 1
%EQUATE `WCN_TYPE_FEATURE_ID = %WCN_TYPE_ENROLLEE_NONCE + 1
%EQUATE `WCN_TYPE_IDENTITY = %WCN_TYPE_FEATURE_ID + 1
%EQUATE `WCN_TYPE_IDENTITY_PROOF = %WCN_TYPE_IDENTITY + 1
%EQUATE `WCN_TYPE_KEY_WRAP_AUTHENTICATOR = %WCN_TYPE_IDENTITY_PROOF + 1
%EQUATE `WCN_TYPE_KEY_IDENTIFIER = %WCN_TYPE_KEY_WRAP_AUTHENTICATOR + 1
%EQUATE `WCN_TYPE_MAC_ADDRESS = %WCN_TYPE_KEY_IDENTIFIER + 1
%EQUATE `WCN_TYPE_MANUFACTURER = %WCN_TYPE_MAC_ADDRESS + 1
%EQUATE `WCN_TYPE_MESSAGE_TYPE = %WCN_TYPE_MANUFACTURER + 1
%EQUATE `WCN_TYPE_MODEL_NAME = %WCN_TYPE_MESSAGE_TYPE + 1
%EQUATE `WCN_TYPE_MODEL_NUMBER = %WCN_TYPE_MODEL_NAME + 1
%EQUATE `WCN_TYPE_NETWORK_INDEX = %WCN_TYPE_MODEL_NUMBER + 1
%EQUATE `WCN_TYPE_NETWORK_KEY = %WCN_TYPE_NETWORK_INDEX + 1
%EQUATE `WCN_TYPE_NETWORK_KEY_INDEX = %WCN_TYPE_NETWORK_KEY + 1
%EQUATE `WCN_TYPE_NEW_DEVICE_NAME = %WCN_TYPE_NETWORK_KEY_INDEX + 1
%EQUATE `WCN_TYPE_NEW_PASSWORD = %WCN_TYPE_NEW_DEVICE_NAME + 1
%EQUATE `WCN_TYPE_OOB_DEVICE_PASSWORD = %WCN_TYPE_NEW_PASSWORD + 1
%EQUATE `WCN_TYPE_OS_VERSION = %WCN_TYPE_OOB_DEVICE_PASSWORD + 1
%EQUATE `WCN_TYPE_POWER_LEVEL = %WCN_TYPE_OS_VERSION + 1
%EQUATE `WCN_TYPE_PSK_CURRENT = %WCN_TYPE_POWER_LEVEL + 1
%EQUATE `WCN_TYPE_PSK_MAX = %WCN_TYPE_PSK_CURRENT + 1
%EQUATE `WCN_TYPE_PUBLIC_KEY = %WCN_TYPE_PSK_MAX + 1
%EQUATE `WCN_TYPE_RADIO_ENABLED = %WCN_TYPE_PUBLIC_KEY + 1
%EQUATE `WCN_TYPE_REBOOT = %WCN_TYPE_RADIO_ENABLED + 1
%EQUATE `WCN_TYPE_REGISTRAR_CURRENT = %WCN_TYPE_REBOOT + 1
%EQUATE `WCN_TYPE_REGISTRAR_ESTABLISHED = %WCN_TYPE_REGISTRAR_CURRENT + 1
%EQUATE `WCN_TYPE_REGISTRAR_LIST = %WCN_TYPE_REGISTRAR_ESTABLISHED + 1
%EQUATE `WCN_TYPE_REGISTRAR_MAX = %WCN_TYPE_REGISTRAR_LIST + 1
%EQUATE `WCN_TYPE_REGISTRAR_NONCE = %WCN_TYPE_REGISTRAR_MAX + 1
%EQUATE `WCN_TYPE_REQUEST_TYPE = %WCN_TYPE_REGISTRAR_NONCE + 1
%EQUATE `WCN_TYPE_RESPONSE_TYPE = %WCN_TYPE_REQUEST_TYPE + 1
%EQUATE `WCN_TYPE_RF_BANDS = %WCN_TYPE_RESPONSE_TYPE + 1
%EQUATE `WCN_TYPE_R_HASH1 = %WCN_TYPE_RF_BANDS + 1
%EQUATE `WCN_TYPE_R_HASH2 = %WCN_TYPE_R_HASH1 + 1
%EQUATE `WCN_TYPE_R_SNONCE1 = %WCN_TYPE_R_HASH2 + 1
%EQUATE `WCN_TYPE_R_SNONCE2 = %WCN_TYPE_R_SNONCE1 + 1
%EQUATE `WCN_TYPE_SELECTED_REGISTRAR = %WCN_TYPE_R_SNONCE2 + 1
%EQUATE `WCN_TYPE_SERIAL_NUMBER = %WCN_TYPE_SELECTED_REGISTRAR + 1
%EQUATE `WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE = %WCN_TYPE_SERIAL_NUMBER + 1
%EQUATE `WCN_TYPE_SSID = %WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE + 1
%EQUATE `WCN_TYPE_TOTAL_NETWORKS = %WCN_TYPE_SSID + 1
%EQUATE `WCN_TYPE_UUID_E = %WCN_TYPE_TOTAL_NETWORKS + 1
%EQUATE `WCN_TYPE_UUID_R = %WCN_TYPE_UUID_E + 1
%EQUATE `WCN_TYPE_VENDOR_EXTENSION = %WCN_TYPE_UUID_R + 1
%EQUATE `WCN_TYPE_VERSION = %WCN_TYPE_VENDOR_EXTENSION + 1
%EQUATE `WCN_TYPE_X_509_CERTIFICATE_REQUEST = %WCN_TYPE_VERSION + 1
%EQUATE `WCN_TYPE_X_509_CERTIFICATE = %WCN_TYPE_X_509_CERTIFICATE_REQUEST + 1
%EQUATE `WCN_TYPE_EAP_IDENTITY = %WCN_TYPE_X_509_CERTIFICATE + 1
%EQUATE `WCN_TYPE_MESSAGE_COUNTER = %WCN_TYPE_EAP_IDENTITY + 1
%EQUATE `WCN_TYPE_PUBLIC_KEY_HASH = %WCN_TYPE_MESSAGE_COUNTER + 1
%EQUATE `WCN_TYPE_REKEY_KEY = %WCN_TYPE_PUBLIC_KEY_HASH + 1
%EQUATE `WCN_TYPE_KEY_LIFETIME = %WCN_TYPE_REKEY_KEY + 1
%EQUATE `WCN_TYPE_PERMITTED_CONFIG_METHODS = %WCN_TYPE_KEY_LIFETIME + 1
%EQUATE `WCN_TYPE_SELECTED_REGISTRAR_CONFIG_METHODS = %WCN_TYPE_PERMITTED_CONFIG_METHODS + 1
%EQUATE `WCN_TYPE_PRIMARY_DEVICE_TYPE = %WCN_TYPE_SELECTED_REGISTRAR_CONFIG_METHODS + 1
%EQUATE `WCN_TYPE_SECONDARY_DEVICE_TYPE_LIST = %WCN_TYPE_PRIMARY_DEVICE_TYPE + 1
%EQUATE `WCN_TYPE_PORTABLE_DEVICE = %WCN_TYPE_SECONDARY_DEVICE_TYPE_LIST + 1
%EQUATE `WCN_TYPE_AP_SETUP_LOCKED = %WCN_TYPE_PORTABLE_DEVICE + 1
%EQUATE `WCN_TYPE_APPLICATION_EXTENSION = %WCN_TYPE_AP_SETUP_LOCKED + 1
%EQUATE `WCN_TYPE_EAP_TYPE = %WCN_TYPE_APPLICATION_EXTENSION + 1
%EQUATE `WCN_TYPE_INITIALIZATION_VECTOR = %WCN_TYPE_EAP_TYPE + 1
%EQUATE `WCN_TYPE_KEY_PROVIDED_AUTOMATICALLY = %WCN_TYPE_INITIALIZATION_VECTOR + 1
%EQUATE `WCN_TYPE_802_1X_ENABLED = %WCN_TYPE_KEY_PROVIDED_AUTOMATICALLY + 1
%EQUATE `WCN_TYPE_APPSESSIONKEY = %WCN_TYPE_802_1X_ENABLED + 1
%EQUATE `WCN_TYPE_WEPTRANSMITKEY = %WCN_TYPE_APPSESSIONKEY + 1
%EQUATE `WCN_TYPE_UUID = %WCN_TYPE_WEPTRANSMITKEY + 1
%EQUATE `WCN_TYPE_PRIMARY_DEVICE_TYPE_CATEGORY = %WCN_TYPE_UUID + 1
%EQUATE `WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY_OUI = %WCN_TYPE_PRIMARY_DEVICE_TYPE_CATEGORY + 1
%EQUATE `WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY = %WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY_OUI + 1
%EQUATE `WCN_TYPE_CURRENT_SSID = %WCN_TYPE_PRIMARY_DEVICE_TYPE_SUBCATEGORY + 1
%EQUATE `WCN_TYPE_BSSID = %WCN_TYPE_CURRENT_SSID + 1
%EQUATE `WCN_TYPE_DOT11_MAC_ADDRESS = %WCN_TYPE_BSSID + 1
%EQUATE `WCN_NUM_ATTRIBUTE_TYPES = %WCN_TYPE_DOT11_MAC_ADDRESS + 1
'//
'// Values for all boolean types (example: WCN_TYPE_AP_SETUP_LOCKED)
'//
' enum WCN_VALUE_TYPE_BOOLEAN
%EQUATE `WCN_VALUE_FALSE = 0
%EQUATE `WCN_VALUE_TRUE = 1
'//
'// Values for WCN_TYPE_ASSOCIATION_STATE
'//
' enum WCN_VALUE_TYPE_ASSOCIATION_STATE
%EQUATE `WCN_VALUE_AS_NOT_ASSOCIATED = 0
%EQUATE `WCN_VALUE_AS_CONNECTION_SUCCESS = 1
%EQUATE `WCN_VALUE_AS_CONFIGURATION_FAILURE = 2
%EQUATE `WCN_VALUE_AS_ASSOCIATION_FAILURE = 3
%EQUATE `WCN_VALUE_AS_IP_FAILURE = 4
'//
'// Values for WCN_TYPE_AUTHENTICATION_TYPE
'// and WCN_TYPE_AUTHENTICATION_TYPE_FLAGS
'//
' enum WCN_VALUE_TYPE_AUTHENTICATION_TYPE
%EQUATE `WCN_VALUE_AT_OPEN = &H1
%EQUATE `WCN_VALUE_AT_WPAPSK = &H2
%EQUATE `WCN_VALUE_AT_SHARED = &H4
%EQUATE `WCN_VALUE_AT_WPA = &H8
%EQUATE `WCN_VALUE_AT_WPA2 = &H10
%EQUATE `WCN_VALUE_AT_WPA2PSK = &H20
'//
'// Values for WCN_TYPE_CONFIG_METHODS
'//
' enum WCN_VALUE_TYPE_CONFIG_METHODS
%EQUATE `WCN_VALUE_CM_USBA = &H1
%EQUATE `WCN_VALUE_CM_ETHERNET = &H2
%EQUATE `WCN_VALUE_CM_LABEL = &H4
%EQUATE `WCN_VALUE_CM_DISPLAY = &H8
%EQUATE `WCN_VALUE_CM_EXTERNAL_NFC = &H10
%EQUATE `WCN_VALUE_CM_INTEGRATED_NFC = &H20
%EQUATE `WCN_VALUE_CM_NFC_INTERFACE = &H40
%EQUATE `WCN_VALUE_CM_PUSHBUTTON = &H80
%EQUATE `WCN_VALUE_CM_KEYPAD = &H100
'//
'// Values for WCN_TYPE_CONFIGURATION_ERROR
'//
' enum WCN_VALUE_TYPE_CONFIGURATION_ERROR
%EQUATE `WCN_VALUE_CE_NO_ERROR = 0
%EQUATE `WCN_VALUE_CE_OOB_INTERFACE_READ_ERROR = 1
%EQUATE `WCN_VALUE_CE_DECRYPTION_CRC_FAILURE = 2
%EQUATE `WCN_VALUE_CE_2_4_CHANNEL_NOT_SUPPORTED = 3
%EQUATE `WCN_VALUE_CE_5_0_CHANNEL_NOT_SUPPORTED = 4
%EQUATE `WCN_VALUE_CE_SIGNAL_TOO_WEAK = 5
%EQUATE `WCN_VALUE_CE_NETWORK_AUTHENTICATION_FAILURE = 6
%EQUATE `WCN_VALUE_CE_NETWORK_ASSOCIATION_FAILURE = 7
%EQUATE `WCN_VALUE_CE_NO_DHCP_RESPONSE = 8
%EQUATE `WCN_VALUE_CE_FAILED_DHCP_CONFIG = 9
%EQUATE `WCN_VALUE_CE_IP_ADDRESS_CONFLICT = 10
%EQUATE `WCN_VALUE_CE_COULD_NOT_CONNECT_TO_REGISTRAR = 11
%EQUATE `WCN_VALUE_CE_MULTIPLE_PBC_SESSIONS_DETECTED = 12
%EQUATE `WCN_VALUE_CE_ROGUE_ACTIVITY_SUSPECTED = 13
%EQUATE `WCN_VALUE_CE_DEVICE_BUSY = 14
%EQUATE `WCN_VALUE_CE_SETUP_LOCKED = 15
%EQUATE `WCN_VALUE_CE_MESSAGE_TIMEOUT = 16
%EQUATE `WCN_VALUE_CE_REGISTRATION_SESSION_TIMEOUT = 17
%EQUATE `WCN_VALUE_CE_DEVICE_PASSWORD_AUTH_FAILURE = 18
'//
'// Values for WCN_TYPE_CONNECTION_TYPE
'// and WCN_TYPE_CONNECTION_TYPE_FLAGS
'//
' enum WCN_VALUE_TYPE_CONNECTION_TYPE
%EQUATE `WCN_VALUE_CT_ESS = 1
%EQUATE `WCN_VALUE_CT_IBSS = 2
'//
'// Values for WCN_TYPE_DEVICE_PASSWORD_ID
'//
' enum WCN_VALUE_TYPE_DEVICE_PASSWORD_ID
%EQUATE `WCN_VALUE_DP_DEFAULT = 0
%EQUATE `WCN_VALUE_DP_USER_SPECIFIED = &H1
%EQUATE `WCN_VALUE_DP_MACHINE_SPECIFIED = &H2
%EQUATE `WCN_VALUE_DP_REKEY = &H3
%EQUATE `WCN_VALUE_DP_PUSHBUTTON = &H4
%EQUATE `WCN_VALUE_DP_REGISTRAR_SPECIFIED = &H5
'//
'// Values for WCN_TYPE_ENCRYPTION_TYPE and
'// WCN_TYPE_ENCRYPTION_TYPE_FLAGS
'//
' enum WCN_VALUE_TYPE_ENCRYPTION_TYPE
%EQUATE `WCN_VALUE_ET_NONE = &H1
%EQUATE `WCN_VALUE_ET_WEP = &H2
%EQUATE `WCN_VALUE_ET_TKIP = &H4
%EQUATE `WCN_VALUE_ET_AES = &H8
'//
'// Values for WCN_TYPE_MESSAGE_TYPE
'//
' enum WCN_VALUE_TYPE_MESSAGE_TYPE
%EQUATE `WCN_VALUE_MT_BEACON = &H1
%EQUATE `WCN_VALUE_MT_PROBE_REQUEST = &H2
%EQUATE `WCN_VALUE_MT_PROBE_RESPONSE = &H3
%EQUATE `WCN_VALUE_MT_M1 = &H4
%EQUATE `WCN_VALUE_MT_M2 = &H5
%EQUATE `WCN_VALUE_MT_M2D = &H6
%EQUATE `WCN_VALUE_MT_M3 = &H7
%EQUATE `WCN_VALUE_MT_M4 = &H8
%EQUATE `WCN_VALUE_MT_M5 = &H9
%EQUATE `WCN_VALUE_MT_M6 = &Ha
%EQUATE `WCN_VALUE_MT_M7 = &Hb
%EQUATE `WCN_VALUE_MT_M8 = &Hc
%EQUATE `WCN_VALUE_MT_ACK = &Hd
%EQUATE `WCN_VALUE_MT_NACK = &He
%EQUATE `WCN_VALUE_MT_DONE = &Hf
'//
'// Values for WCN_TYPE_REQUEST_TYPE
'//
' enum tagWCN_VALUE_TYPE_REQUEST_TYPE
%EQUATE `WCN_VALUE_ReqT_ENROLLEE_INFO = 0
%EQUATE `WCN_VALUE_ReqT_ENROLLEE_OPEN_1X = &H1
%EQUATE `WCN_VALUE_ReqT_REGISTRAR = &H2
%EQUATE `WCN_VALUE_ReqT_MANAGER_REGISTRAR = &H3
'//
'// Values for WCN_TYPE_RESPONSE_TYPE
'//
' enum WCN_VALUE_TYPE_RESPONSE_TYPE
%EQUATE `WCN_VALUE_RspT_ENROLLEE_INFO = 0
%EQUATE `WCN_VALUE_RspT_ENROLLEE_OPEN_1X = &H1
%EQUATE `WCN_VALUE_RspT_REGISTRAR = &H2
%EQUATE `WCN_VALUE_RspT_AP = &H3
'//
'// Values for WCN_TYPE_RF_BANDS
'//
' enum tagWCN_VALUE_TYPE_RF_BANDS
%EQUATE `WCN_VALUE_RB_24GHZ = &H1
%EQUATE `WCN_VALUE_RB_50GHZ = &H2
'//
'// Values for WCN_TYPE_WI_FI_PROTECTED_SETUP_STATE
'//
' enum WCN_VALUE_TYPE_WI_FI_PROTECTED_SETUP_STATE
%EQUATE `WCN_VALUE_SS_RESERVED00 = 0
%EQUATE `WCN_VALUE_SS_NOT_CONFIGURED = &H1
%EQUATE `WCN_VALUE_SS_CONFIGURED = &H2
'//
'// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE[Category]
'//
'typedef unsigned short WCN_VALUE_TYPE_DEVICE_TYPE_CATEGORY;
%EQUATE `WCN_VALUE_DT_CATEGORY_COMPUTER = &H1
%EQUATE `WCN_VALUE_DT_CATEGORY_INPUT_DEVICE = &H2
%EQUATE `WCN_VALUE_DT_CATEGORY_PRINTER = &H3
%EQUATE `WCN_VALUE_DT_CATEGORY_CAMERA = &H4
%EQUATE `WCN_VALUE_DT_CATEGORY_STORAGE = &H5
%EQUATE `WCN_VALUE_DT_CATEGORY_NETWORK_INFRASTRUCTURE = &H6
%EQUATE `WCN_VALUE_DT_CATEGORY_DISPLAY = &H7
%EQUATE `WCN_VALUE_DT_CATEGORY_MULTIMEDIA_DEVICE = &H8
%EQUATE `WCN_VALUE_DT_CATEGORY_GAMING_DEVICE = &H9
%EQUATE `WCN_VALUE_DT_CATEGORY_TELEPHONE = &Ha
'//
'// Value for WCN_TYPE_PRIMARY_DEVICE_TYPE[SubCategoryOUI]
'//
'typedef unsigned __int32 WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY_OUI;
'// Standard OUI for Wi-Fi Alliance
%EQUATE `WCN_VALUE_DT_SUBTYPE_WIFI_OUI = &H50f204
'//
'// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE[SubCategory]
'//
'typedef unsigned short WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY;
'// Category = WCN_VALUE_DT_CATEGORY_COMPUTER
%EQUATE `WCN_VALUE_DT_SUBTYPE_COMPUTER__PC = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_COMPUTER__SERVER = &H2
'// Category = WCN_VALUE_DT_CATEGORY_PRINTER
%EQUATE `WCN_VALUE_DT_SUBTYPE_PRINTER__PRINTER = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_PRINTER__SCANNER = &H2
'// Category = WCN_VALUE_DT_CATEGORY_CAMERA
%EQUATE `WCN_VALUE_DT_SUBTYPE_CAMERA__STILL_CAMERA = &H1
'// Category = WCN_VALUE_DT_CATEGORY_STORAGE
%EQUATE `WCN_VALUE_DT_SUBTYPE_STORAGE__NAS = &H1
'// Category = WCN_VALUE_DT_CATEGORY_NETWORK_INFRASTRUCTURE
%EQUATE `WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__AP = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__ROUTER = &H2
%EQUATE `WCN_VALUE_DT_SUBTYPE_NETWORK_INFRASTRUCUTURE__SWITCH = &H3
'// Category = WCN_VALUE_DT_CATEGORY_DISPLAY
%EQUATE `WCN_VALUE_DT_SUBTYPE_DISPLAY__TELEVISION = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_DISPLAY__PICTURE_FRAME = &H2
%EQUATE `WCN_VALUE_DT_SUBTYPE_DISPLAY__PROJECTOR = &H3
'// Category = WCN_VALUE_DT_CATEGORY_MULTIMEDIA_DEVICE
%EQUATE `WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__DAR = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__PVR = &H2
%EQUATE `WCN_VALUE_DT_SUBTYPE_MULTIMEDIA_DEVICE__MCX = &H3
'// Category = WCN_VALUE_DT_CATEGORY_GAMING_DEVICE
%EQUATE `WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__XBOX = &H1
%EQUATE `WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__XBOX360 = &H2
%EQUATE `WCN_VALUE_DT_SUBTYPE_GAMING_DEVICE__PLAYSTATION = &H3
'// Category = WCN_VALUE_DT_CATEGORY_TELEPHONE
%EQUATE `WCN_VALUE_DT_SUBTYPE_TELEPHONE__WINDOWS_MOBILE = &H1
'//
'// Values for WCN_TYPE_PRIMARY_DEVICE_TYPE
'//
'#ifdef _MSC_VER
'#pragma pack(push, 1)
'typedef struct tagWCN_VALUE_TYPE_PRIMARY_DEVICE_TYPE
' {
' WCN_VALUE_TYPE_DEVICE_TYPE_CATEGORY Category;
' WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY_OUI SubCategoryOUI;
' WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY SubCategory;
' } WCN_VALUE_TYPE_PRIMARY_DEVICE_TYPE;
'#pragma pack(pop)
'#endif // _MSC_VER
' // Size = 8 bytes
TYPE WCN_VALUE_TYPE_PRIMARY_DEVICE_TYPE BYTE
 Category AS WORD ' WCN_VALUE_TYPE_DEVICE_TYPE_CATEGORY
 SubCategoryOUI AS DWORD ' WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY_OUI
 SubCategory AS WORD ' WCN_VALUE_TYPE_DEVICE_TYPE_SUBCATEGORY
END TYPE
#ENDIF
