953 lines
42 KiB
Plaintext
953 lines
42 KiB
Plaintext
unit EM.nduWlanAPI;
|
|
interface
|
|
uses
|
|
EM.nduCType, EM.nduL2cmn, EM.nduWlanTypes, EM.nduWinDot11, EM.nduWinNT, Windows, EM.nduEapTypes;
|
|
const
|
|
NDU_WLAN_API_VERSION = 1;
|
|
NDU_WLAN_MAX_NAME_LENGTH = NDU_L2_PROFILE_MAX_NAME_LENGTH;
|
|
//Profil Flags
|
|
NDU_WLAN_PROFILE_GROUP_POLICY = $00000001;
|
|
NDU_WLAN_PROFILE_USER = $00000002;
|
|
WLAN_SET_EAPHOST_DATA_ALL_USERS = $00000001;
|
|
WLAN_MAX_PHY_TYPE_NUMBER = 8;
|
|
type
|
|
Pndu_WLAN_PROFILE_INFO = ^Tndu_WLAN_PROFILE_INFO;
|
|
Tndu_WLAN_PROFILE_INFO = record
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
dwFlags: DWORD;
|
|
end;
|
|
Pndu_DOT11_NETWORK = ^Tndu_DOT11_NETWORK;
|
|
Tndu_DOT11_NETWORK = record
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
end;
|
|
const
|
|
NDU_DOT11_PSD_IE_MAX_DATA_SIZE = 220; // 255 - 6 - 2 - FORMAT ID
|
|
NDU_DOT11_PSD_IE_MAX_ENTRY_NUMBER = 10; // 10 enties at most
|
|
type
|
|
Pndu_WLAN_RAW_DATA = ^Tndu_WLAN_RAW_DATA;
|
|
Tndu_WLAN_RAW_DATA = record
|
|
dwDataSize: DWORD;
|
|
DataBlob: array[0..0] of Byte;
|
|
end;
|
|
Pndu_WLAN_RAW_DATA_LIST = ^Tndu_WLAN_RAW_DATA_LIST;
|
|
PPndu_WLAN_RAW_DATA_LIST = ^Pndu_WLAN_RAW_DATA_LIST;
|
|
Tndu_WLAN_RAW_DATA_LIST = record
|
|
dwTotalSize: DWORD;
|
|
dwNumberOfItems: DWORD;
|
|
case Integer of
|
|
0: (dwDataOffset: DWORD);
|
|
1: (dwDataSize: DWORD);
|
|
end;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_CONNECTION_MODE = ^Tndu_WLAN_CONNECTION_MODE;
|
|
Tndu_WLAN_CONNECTION_MODE = (
|
|
wlan_connection_mode_profile = 0,
|
|
wlan_connection_mode_temporary_profile,
|
|
wlan_connection_mode_discovery_secure,
|
|
wlan_connection_mode_discovery_unsecure,
|
|
wlan_connection_mode_auto,
|
|
wlan_connection_mode_invalid);
|
|
Tndu_WLAN_REASON_CODE = DWORD;
|
|
Pndu_WLAN_REASON_CODE = ^Tndu_WLAN_REASON_CODE;
|
|
const
|
|
NDU_WLAN_REASON_CODE_SUCCESS = NDU_L2_REASON_CODE_SUCCESS;
|
|
NDU_WLAN_REASON_CODE_UNKNOWN = NDU_L2_REASON_CODE_UNKNOWN;
|
|
NDU_WLAN_REASON_CODE_RANGE_SIZE = NDU_L2_REASON_CODE_GROUP_SIZE;
|
|
NDU_WLAN_REASON_CODE_BASE = NDU_L2_REASON_CODE_DOT11_AC_BASE;
|
|
NDU_WLAN_REASON_CODE_AC_BASE = NDU_L2_REASON_CODE_DOT11_AC_BASE;
|
|
NDU_WLAN_REASON_CODE_AC_CONNECT_BASE =
|
|
(NDU_WLAN_REASON_CODE_AC_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE div 2);
|
|
NDU_WLAN_REASON_CODE_AC_END =
|
|
(NDU_WLAN_REASON_CODE_AC_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE - 1);
|
|
|
|
NDU_WLAN_REASON_CODE_PROFILE_BASE = NDU_L2_REASON_CODE_PROFILE_BASE;
|
|
NDU_WLAN_REASON_CODE_PROFILE_CONNECT_BASE =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE div 2);
|
|
NDU_WLAN_REASON_CODE_PROFILE_END =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE - 1);
|
|
// range for MSM
|
|
//
|
|
NDU_WLAN_REASON_CODE_MSM_BASE = NDU_L2_REASON_CODE_DOT11_MSM_BASE;
|
|
NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE div 2);
|
|
NDU_WLAN_REASON_CODE_MSM_END =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE - 1);
|
|
// range for MSMSEC
|
|
//
|
|
NDU_WLAN_REASON_CODE_MSMSEC_BASE =
|
|
NDU_L2_REASON_CODE_DOT11_SECURITY_BASE;
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE div 2);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_END =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + NDU_WLAN_REASON_CODE_RANGE_SIZE - 1);
|
|
// AC network incompatible reason codes
|
|
//
|
|
NDU_WLAN_REASON_CODE_NETWORK_NOT_COMPATIBLE =
|
|
(NDU_WLAN_REASON_CODE_AC_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_PROFILE_NOT_COMPATIBLE =
|
|
(NDU_WLAN_REASON_CODE_AC_BASE + 2);
|
|
// AC connect reason code
|
|
//
|
|
NDU_WLAN_REASON_CODE_NO_AUTO_CONNECTION =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_NOT_VISIBLE =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_GP_DENIED =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_USER_DENIED =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_BSS_TYPE_NOT_ALLOWED =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 5);
|
|
NDU_WLAN_REASON_CODE_IN_FAILED_LIST =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 6);
|
|
NDU_WLAN_REASON_CODE_IN_BLOCKED_LIST =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 7);
|
|
NDU_WLAN_REASON_CODE_SSID_LIST_TOO_LONG =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 8);
|
|
NDU_WLAN_REASON_CODE_CONNECT_CALL_FAIL =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 9);
|
|
NDU_WLAN_REASON_CODE_SCAN_CALL_FAIL =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 10);
|
|
NDU_WLAN_REASON_CODE_NETWORK_NOT_AVAILABLE =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 11);
|
|
NDU_WLAN_REASON_CODE_PROFILE_CHANGED_OR_DELETED =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 12);
|
|
NDU_WLAN_REASON_CODE_KEY_MISMATCH =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 13);
|
|
NDU_WLAN_REASON_CODE_USER_NOT_RESPOND =
|
|
(NDU_WLAN_REASON_CODE_AC_CONNECT_BASE + 14);
|
|
// Profile validation errors
|
|
//
|
|
NDU_WLAN_REASON_CODE_INVALID_PROFILE_SCHEMA =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_PROFILE_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_INVALID_PROFILE_NAME =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_INVALID_PROFILE_TYPE =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_INVALID_PHY_TYPE =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 5);
|
|
NDU_WLAN_REASON_CODE_MSM_SECURITY_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 6);
|
|
NDU_WLAN_REASON_CODE_IHV_SECURITY_NOT_SUPPORTED =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 7);
|
|
NDU_WLAN_REASON_CODE_IHV_OUI_MISMATCH =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 8);
|
|
NDU_WLAN_REASON_CODE_IHV_OUI_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 9);
|
|
NDU_WLAN_REASON_CODE_IHV_SETTINGS_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 10);
|
|
NDU_WLAN_REASON_CODE_CONFLICT_SECURITY =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 11);
|
|
NDU_WLAN_REASON_CODE_SECURITY_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 12);
|
|
NDU_WLAN_REASON_CODE_INVALID_BSS_TYPE =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 13);
|
|
NDU_WLAN_REASON_CODE_INVALID_ADHOC_CONNECTION_MODE =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 14);
|
|
NDU_WLAN_REASON_CODE_NON_BROADCAST_SET_FOR_ADHOC =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 15);
|
|
NDU_WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_ADHOC =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 16);
|
|
NDU_WLAN_REASON_CODE_AUTO_SWITCH_SET_FOR_MANUAL_CONNECTION =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 17);
|
|
NDU_WLAN_REASON_CODE_IHV_SECURITY_ONEX_MISSING =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 18);
|
|
NDU_WLAN_REASON_CODE_PROFILE_SSID_INVALID =
|
|
(NDU_WLAN_REASON_CODE_PROFILE_BASE + 19);
|
|
// MSM network incompatible reasons
|
|
//
|
|
NDU_WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET_BY_OS =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_UNSUPPORTED_SECURITY_SET =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_BSS_TYPE_UNMATCH =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_PHY_TYPE_UNMATCH =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_DATARATE_UNMATCH =
|
|
(NDU_WLAN_REASON_CODE_MSM_BASE + 5);
|
|
// MSM connection failure reasons, to be defined
|
|
// failure reason codes
|
|
//
|
|
NDU_WLAN_REASON_CODE_USER_CANCELLED =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_ASSOCIATION_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_ASSOCIATION_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_PRE_SECURITY_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_START_SECURITY_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 5);
|
|
NDU_WLAN_REASON_CODE_SECURITY_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 6);
|
|
NDU_WLAN_REASON_CODE_SECURITY_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 7);
|
|
NDU_WLAN_REASON_CODE_ROAMING_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 8);
|
|
NDU_WLAN_REASON_CODE_ROAMING_SECURITY_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 9);
|
|
NDU_WLAN_REASON_CODE_ADHOC_SECURITY_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 10);
|
|
NDU_WLAN_REASON_CODE_DRIVER_DISCONNECTED =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 11);
|
|
NDU_WLAN_REASON_CODE_DRIVER_OPERATION_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 12);
|
|
NDU_WLAN_REASON_CODE_IHV_NOT_AVAILABLE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 13);
|
|
NDU_WLAN_REASON_CODE_IHV_NOT_RESPONDING =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 14);
|
|
NDU_WLAN_REASON_CODE_DISCONNECT_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 15);
|
|
NDU_WLAN_REASON_CODE_INTERNAL_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 16);
|
|
NDU_WLAN_REASON_CODE_UI_REQUEST_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSM_CONNECT_BASE + 17);
|
|
// MSMSEC reason codes
|
|
//
|
|
NDU_WLAN_REASON_CODE_MSMSEC_MIN = NDU_WLAN_REASON_CODE_MSMSEC_BASE;
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_KEY_INDEX =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_PRESENT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_LENGTH =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_PSK_LENGTH =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_NO_AUTH_CIPHER_SPECIFIED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 5);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_TOO_MANY_AUTH_CIPHER_SPECIFIED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 6);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_DUPLICATE_AUTH_CIPHER =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 7);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_RAWDATA_INVALID =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 8);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_AUTH_CIPHER =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 9);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_DISABLED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 10);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_ONEX_ENABLED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 11);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_MODE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 12);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_SIZE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 13);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PMKCACHE_TTL =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 14);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_MODE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 15);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_PREAUTH_THROTTLE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 16);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_PREAUTH_ONLY_ENABLED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 17);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CAPABILITY_NETWORK =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 18);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CAPABILITY_NIC =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 19);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CAPABILITY_PROFILE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 20);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CAPABILITY_DISCOVERY =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 21);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_PASSPHRASE_CHAR =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 22);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_KEYMATERIAL_CHAR =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 23);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_WRONG_KEYTYPE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 24);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_MIXED_CELL =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 25);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_AUTH_TIMERS_INVALID =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 26);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_INVALID_GKEY_INTV =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 27);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_TRANSITION_NETWORK =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 28);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PROFILE_KEY_UNMAPPED_CHAR =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_BASE + 29);
|
|
|
|
NDU_WLAN_REASON_CODE_MSMSEC_UI_REQUEST_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 1);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_AUTH_START_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 2);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_AUTH_SUCCESS_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 3);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_KEY_START_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 4);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_KEY_SUCCESS_TIMEOUT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 5);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_M3_MISSING_KEY_DATA =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 6);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_M3_MISSING_IE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 7);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_M3_MISSING_GRP_KEY =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 8);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PR_IE_MATCHING =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 9);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_SEC_IE_MATCHING =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 10);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_NO_PAIRWISE_KEY =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 11);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_G1_MISSING_KEY_DATA =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 12);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_G1_MISSING_GRP_KEY =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 13);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PEER_INDICATED_INSECURE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 14);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_NO_AUTHENTICATOR =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 15);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_NIC_FAILURE =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 16);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_CANCELLED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 17);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_KEY_FORMAT =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 18);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_DOWNGRADE_DETECTED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 19);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_PSK_MISMATCH_SUSPECTED =
|
|
(NDU_WLAN_REASON_CODE_MSMSEC_CONNECT_BASE + 20);
|
|
NDU_WLAN_REASON_CODE_MSMSEC_MAX = NDU_WLAN_REASON_CODE_MSMSEC_END;
|
|
type
|
|
Tndu_WLAN_SIGNAL_QUALITY = ulong;
|
|
Pndu_WLAN_SIGNAL_QUALITY = ^Tndu_WLAN_SIGNAL_QUALITY;
|
|
const
|
|
NDU_WLAN_AVAILABLE_NETWORK_CONNECTED = $00000001;
|
|
NDU_WLAN_AVAILABLE_NETWORK_HAS_PROFILE = $00000002;
|
|
NDU_WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_ADHOC_PROFILES = $00000001;
|
|
NDU_WLAN_AVAILABLE_NETWORK_INCLUDE_ALL_MANUAL_HIDDEN_PROFILES = $00000002;
|
|
type
|
|
Pndu_WLAN_RATE_SET = ^Tndu_WLAN_RATE_SET;
|
|
Tndu_WLAN_RATE_SET = record
|
|
uRateSetLength: ulong;
|
|
usRateSet: array[0..NDU_DOT11_RATE_SET_MAX_LENGTH - 1] of ushort;
|
|
end;
|
|
Pndu_WLAN_AVAILABLE_NETWORK = ^Tndu_WLAN_AVAILABLE_NETWORK;
|
|
{
|
|
Tndu_WLAN_AVAILABLE_NETWORK = record
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
uNumberOfBssids: ulong;
|
|
bNetworkConnectable: Bool;
|
|
wlanNotConnectableReason: Tndu_WLAN_REASON_CODE;
|
|
uDot11PhyType: ulong;
|
|
wlanSignalQuality: Tndu_WLAN_SIGNAL_QUALITY;
|
|
dot11RateSet: Tndu_DOT11_RATE_SET;
|
|
bSecurityEnabled: Bool;
|
|
dot11DefaultAuthAlgorithm: Tndu_DOT11_AUTH_ALGORITHM;
|
|
dot11DefaultCipherAlgorithm: Tndu_DOT11_CIPHER_ALGORITHM;
|
|
dwFlags: DWORD;
|
|
dwReserved: DWORD;
|
|
end;}
|
|
Tndu_WLAN_AVAILABLE_NETWORK = record
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
uNumberOfBssids: ulong;
|
|
bNetworkConnectable: Bool;
|
|
wlanNotConnectableReason: Tndu_WLAN_REASON_CODE;
|
|
uNumberOfPhyTypes: ulong;
|
|
dot11PhyTypes: array[0..WLAN_MAX_PHY_TYPE_NUMBER -1] of DWORD; //Tndu_DOT11_PHY_TYPE;
|
|
bMorePhyTypes: Bool;
|
|
wlanSignalQuality: Tndu_WLAN_SIGNAL_QUALITY;
|
|
bSecurityEnabled: Bool;
|
|
dot11DefaultAuthAlgorithm: DWORD; //Tndu_DOT11_AUTH_ALGORITHM;
|
|
dot11DefaultCipherAlgorithm: DWORD; //Tndu_DOT11_CIPHER_ALGORITHM;
|
|
dwFlags: DWORD;
|
|
dwReserved: DWORD;
|
|
end;
|
|
Pndu_WLAN_BSS_ENTRY = ^Tndu_WLAN_BSS_ENTRY;
|
|
Tndu_WLAN_BSS_ENTRY = record
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
uPhyId: ulong;
|
|
dot11Bssid: Tndu_DOT11_MAC_ADDRESS;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
dot11BssPhyType: DWORD; //Tndu_DOT11_PHY_TYPE;
|
|
lRssi: long;
|
|
uLinkQuality: ulong;
|
|
bInRegDomain: Boolean;
|
|
usBeaconPeriod: ushort;
|
|
ullTimestamp: ulonglong;
|
|
ullHostTimestamp: ulonglong;
|
|
usCapabilityInformation: ushort;
|
|
ulChCenterFrequency: ulong;
|
|
wlanRateSet: Tndu_WLAN_RATE_SET;
|
|
ulIeOffset: ulong;
|
|
ulIeSize: ulong;
|
|
end;
|
|
Pndu_WLAN_BSS_LIST = ^Tndu_WLAN_BSS_LIST;
|
|
PPndu_WLAN_BSS_LIST = ^Pndu_WLAN_BSS_LIST;
|
|
Tndu_WLAN_BSS_LIST = record
|
|
dwTotalSize: DWORD;
|
|
dwNumberOfItems: DWORD;
|
|
wlanBssEntries: array[0..0] of Tndu_WLAN_BSS_ENTRY;
|
|
end;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_INTERFACE_STATE = ^Tndu_WLAN_INTERFACE_STATE;
|
|
Tndu_WLAN_INTERFACE_STATE = (
|
|
wlan_interface_state_not_ready = 0,
|
|
wlan_interface_state_connected,
|
|
wlan_interface_state_ad_hoc_network_formed,
|
|
wlan_interface_state_disconnecting,
|
|
wlan_interface_state_disconnected,
|
|
wlan_interface_state_associating,
|
|
wlan_interface_state_discovering,
|
|
wlan_interface_state_authenticating);
|
|
Pndu_WLAN_INTERFACE_INFO = ^Tndu_WLAN_INTERFACE_INFO;
|
|
Tndu_WLAN_INTERFACE_INFO = record
|
|
InterfaceGuid: TGUID;
|
|
strInterfaceDescription: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
isState: Tndu_WLAN_INTERFACE_STATE;
|
|
end;
|
|
Pndu_WLAN_ASSOCIATION_ATTRIBUTES = ^Tndu_WLAN_ASSOCIATION_ATTRIBUTES;
|
|
Tndu_WLAN_ASSOCIATION_ATTRIBUTES = record
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
dot11Bssid: Tndu_DOT11_MAC_ADDRESS;
|
|
dot11PhyType: DWORD; //Tndu_DOT11_PHY_TYPE;
|
|
uDot11PhyIndex: ulong;
|
|
wlanSignalQuality: Tndu_WLAN_SIGNAL_QUALITY;
|
|
ulRxRate: ulong;
|
|
ulTxRate: ulong;
|
|
end;
|
|
Pndu_WLAN_SECURITY_ATTRIBUTES = ^Tndu_WLAN_SECURITY_ATTRIBUTES;
|
|
Tndu_WLAN_SECURITY_ATTRIBUTES = record
|
|
bSecurityEnabled: Bool;
|
|
bOneXEnabled: Bool;
|
|
dot11AuthAlgorithm: DWORD; //Tndu_DOT11_AUTH_ALGORITHM;
|
|
dot11CipherAlgorithm: DWORD; //Tndu_DOT11_CIPHER_ALGORITHM;
|
|
end;
|
|
|
|
Pndu_WLAN_CONNECTION_ATTRIBUTES = ^Tndu_WLAN_CONNECTION_ATTRIBUTES;
|
|
Tndu_WLAN_CONNECTION_ATTRIBUTES = record
|
|
isState: Tndu_WLAN_INTERFACE_STATE;
|
|
wlanConnectionMode: Tndu_WLAN_CONNECTION_MODE;
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
wlanAssociationAttributes: Tndu_WLAN_ASSOCIATION_ATTRIBUTES;
|
|
wlanSecurityAttributes: Tndu_WLAN_SECURITY_ATTRIBUTES;
|
|
end;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_DOT11_RADIO_STATE = ^Tndu_DOT11_RADIO_STATE;
|
|
Tndu_DOT11_RADIO_STATE = (
|
|
dot11_radio_state_unknown = 0,
|
|
dot11_radio_state_on,
|
|
dot11_radio_state_off);
|
|
const
|
|
// the maximum number of PHYs supported by a NIC
|
|
NDU_WLAN_MAX_PHY_INDEX = 63;
|
|
type
|
|
Pndu_WLAN_PHY_RADIO_STATE = ^Tndu_WLAN_PHY_RADIO_STATE;
|
|
Tndu_WLAN_PHY_RADIO_STATE = record
|
|
dwPhyIndex: DWORD;
|
|
dot11SoftwareRadioState: Tndu_DOT11_RADIO_STATE;
|
|
dot11HardwareRadioState: Tndu_DOT11_RADIO_STATE;
|
|
end;
|
|
Pndu_WLAN_RADIO_STATE = ^Tndu_WLAN_RADIO_STATE;
|
|
Tndu_WLAN_RADIO_STATE = record
|
|
dwNumberOfPhys: DWORD;
|
|
PhyRadioState: array[0..NDU_WLAN_MAX_PHY_INDEX - 1] of Tndu_WLAN_PHY_RADIO_STATE;
|
|
end;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_INTERFACE_TYPE = ^Tndu_WLAN_INTERFACE_TYPE;
|
|
Tndu_WLAN_INTERFACE_TYPE = (
|
|
wlan_interface_type_emulated_802_11 = 0,
|
|
wlan_interface_type_native_802_11,
|
|
wlan_interface_type_invalid);
|
|
Pndu_WLAN_INTERFACE_CAPABILITY = ^Tndu_WLAN_INTERFACE_CAPABILITY;
|
|
PPndu_WLAN_INTERFACE_CAPABILITY = ^Pndu_WLAN_INTERFACE_CAPABILITY;
|
|
Tndu_WLAN_INTERFACE_CAPABILITY = record
|
|
interfaceType: Tndu_WLAN_INTERFACE_TYPE;
|
|
bDot11DSupported: Bool;
|
|
dwMaxDesiredSsidListSize: DWORD;
|
|
dwMaxDesiredBssidListSize: DWORD;
|
|
dwNumberOfSupportedPhys: DWORD;
|
|
dot11PhyTypes: array[0..NDU_WLAN_MAX_PHY_INDEX - 1] of DWORD; //Tndu_DOT11_PHY_TYPE;
|
|
end;
|
|
Pndu_WLAN_AUTH_CIPHER_PAIR_LIST = ^Tndu_WLAN_AUTH_CIPHER_PAIR_LIST;
|
|
Tndu_WLAN_AUTH_CIPHER_PAIR_LIST = record
|
|
pAuthCipherPairList: array[0..0] of Tndu_DOT11_AUTH_CIPHER_PAIR;
|
|
end;
|
|
Pndu_WLAN_COUNTRY_OR_REGION_STRING_LIST = ^Tndu_WLAN_COUNTRY_OR_REGION_STRING_LIST;
|
|
Tndu_WLAN_COUNTRY_OR_REGION_STRING_LIST = record
|
|
pCountryOrRegionStringList: array[0..0] of Tndu_DOT11_COUNTRY_OR_REGION_STRING;
|
|
end;
|
|
Pndu_WLAN_PROFILE_INFO_LIST = ^Tndu_WLAN_PROFILE_INFO_LIST;
|
|
PPndu_WLAN_PROFILE_INFO_LIST = ^Pndu_WLAN_PROFILE_INFO_LIST;
|
|
Tndu_WLAN_PROFILE_INFO_LIST = record
|
|
dwNumberOfItems: DWORD;
|
|
dwIndex: DWORD;
|
|
ProfileInfo: array[0..0] of Tndu_WLAN_PROFILE_INFO;
|
|
end;
|
|
Pndu_WLAN_AVAILABLE_NETWORK_LIST = ^Tndu_WLAN_AVAILABLE_NETWORK_LIST;
|
|
PPndu_WLAN_AVAILABLE_NETWORK_LIST = ^Pndu_WLAN_AVAILABLE_NETWORK_LIST;
|
|
Tndu_WLAN_AVAILABLE_NETWORK_LIST = record
|
|
dwNumberOfItems: DWORD;
|
|
dwIndex: DWORD;
|
|
Network: array[0..0] of Tndu_WLAN_AVAILABLE_NETWORK;
|
|
end;
|
|
Pndu_WLAN_INTERFACE_INFO_LIST = ^Tndu_WLAN_INTERFACE_INFO_LIST;
|
|
PPndu_WLAN_INTERFACE_INFO_LIST = ^Pndu_WLAN_INTERFACE_INFO_LIST;
|
|
Tndu_WLAN_INTERFACE_INFO_LIST = record
|
|
dwNumberOfItems: DWORD;
|
|
dwIndex: DWORD;
|
|
InterfaceInfo: array[0..0] of Tndu_WLAN_INTERFACE_INFO;
|
|
end;
|
|
Pndu_DOT11_NETWORK_LIST = ^Tndu_DOT11_NETWORK_LIST;
|
|
PPndu_DOT11_NETWORK_LIST = ^Pndu_DOT11_NETWORK_LIST;
|
|
Tndu_DOT11_NETWORK_LIST = record
|
|
dwNumberOfItems: DWORD;
|
|
dwIndex: DWORD;
|
|
Network: array[0..0] of Tndu_DOT11_NETWORK;
|
|
end;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_POWER_SETTING = ^Tndu_WLAN_POWER_SETTING;
|
|
Tndu_WLAN_POWER_SETTING = (
|
|
wlan_power_setting_no_saving = 0,
|
|
wlan_power_setting_low_saving,
|
|
wlan_power_setting_medium_saving,
|
|
wlan_power_setting_maximum_saving,
|
|
wlan_power_setting_invalid);
|
|
const
|
|
NDU_WLAN_CONNECTION_HIDDEN_NETWORK = $00000001;
|
|
NDU_WLAN_CONNECTION_ADHOC_JOIN_ONLY = $00000002;
|
|
type
|
|
Pndu_WLAN_CONNECTION_PARAMETERS = ^Tndu_WLAN_CONNECTION_PARAMETERS;
|
|
Tndu_WLAN_CONNECTION_PARAMETERS = record
|
|
wlanConnectionMode: Tndu_WLAN_CONNECTION_MODE;
|
|
strProfile: LPCTSTR;
|
|
pDot11Ssid: Pndu_DOT11_SSID;
|
|
pDesiredBssidList: Pndu_DOT11_BSSID_LIST;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
dwFlags: DWORD;
|
|
end;
|
|
Pndu_WLAN_MSM_NOTIFICATION_DATA = ^Tndu_WLAN_MSM_NOTIFICATION_DATA;
|
|
Tndu_WLAN_MSM_NOTIFICATION_DATA = record
|
|
wlanConnectionMode: Tndu_WLAN_CONNECTION_MODE;
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
dot11MacAddr: Tndu_DOT11_MAC_ADDRESS;
|
|
bSecurityEnabled: Bool;
|
|
bFirstPeer: Bool;
|
|
bLastPeer: Bool;
|
|
wlanReasonCode: Tndu_WLAN_REASON_CODE;
|
|
end;
|
|
Pndu_WLAN_CONNECTION_NOTIFICATION_DATA = ^Tndu_WLAN_CONNECTION_NOTIFICATION_DATA;
|
|
Tndu_WLAN_CONNECTION_NOTIFICATION_DATA = record
|
|
wlanConnectionMode: Tndu_WLAN_CONNECTION_MODE;
|
|
strProfileName: array[0..NDU_WLAN_MAX_NAME_LENGTH - 1] of wchar;
|
|
dot11Ssid: Tndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE;
|
|
bSecurityEnabled: Bool;
|
|
wlanReasonCode: Tndu_WLAN_REASON_CODE;
|
|
strProfileXml: array[0..0] of wchar;
|
|
end;
|
|
const
|
|
NDU_WLAN_NOTIFICATION_SOURCE_NONE = NDU_L2_NOTIFICATION_SOURCE_NONE;
|
|
NDU_WLAN_NOTIFICATION_SOURCE_ALL = NDU_L2_NOTIFICATION_SOURCE_ALL;
|
|
NDU_WLAN_NOTIFICATION_SOURCE_ACM = NDU_L2_NOTIFICATION_SOURCE_WLAN_ACM;
|
|
NDU_WLAN_NOTIFICATION_SOURCE_MSM = NDU_L2_NOTIFICATION_SOURCE_WLAN_MSM;
|
|
NDU_WLAN_NOTIFICATION_SOURCE_SECURITY = NDU_L2_NOTIFICATION_SOURCE_WLAN_SECURITY;
|
|
NDU_WLAN_NOTIFICATION_SOURCE_IHV = NDU_L2_NOTIFICATION_SOURCE_WLAN_IHV;
|
|
type
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_NOTIFICATION_ACM = ^Tndu_WLAN_NOTIFICATION_ACM;
|
|
Tndu_WLAN_NOTIFICATION_ACM = (
|
|
wlan_notification_acm_start = NDU_L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
|
|
wlan_notification_acm_autoconf_enabled,
|
|
wlan_notification_acm_autoconf_disabled,
|
|
wlan_notification_acm_background_scan_enabled,
|
|
wlan_notification_acm_background_scan_disabled,
|
|
wlan_notification_acm_bss_type_change,
|
|
wlan_notification_acm_power_setting_change,
|
|
wlan_notification_acm_scan_complete,
|
|
wlan_notification_acm_scan_fail,
|
|
wlan_notification_acm_connection_start,
|
|
wlan_notification_acm_connection_complete,
|
|
wlan_notification_acm_connection_attempt_fail,
|
|
wlan_notification_acm_filter_list_change,
|
|
wlan_notification_acm_interface_arrival,
|
|
wlan_notification_acm_interface_removal,
|
|
wlan_notification_acm_profile_change,
|
|
wlan_notification_acm_profile_name_change,
|
|
wlan_notification_acm_profiles_exhausted,
|
|
wlan_notification_acm_network_not_available,
|
|
wlan_notification_acm_network_available,
|
|
wlan_notification_acm_disconnecting,
|
|
wlan_notification_acm_disconnected,
|
|
wlan_notification_acm_end);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_NOTIFICATION_MSM = ^Tndu_WLAN_NOTIFICATION_MSM;
|
|
Tndu_WLAN_NOTIFICATION_MSM = (
|
|
wlan_notification_msm_start = NDU_L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
|
|
wlan_notification_msm_associating,
|
|
wlan_notification_msm_associated,
|
|
wlan_notification_msm_authenticating,
|
|
wlan_notification_msm_connected,
|
|
wlan_notification_msm_roaming_start,
|
|
wlan_notification_msm_roaming_end,
|
|
wlan_notification_msm_radio_state_change,
|
|
wlan_notification_msm_signal_quality_change,
|
|
wlan_notification_msm_disassociating,
|
|
wlan_notification_msm_disconnected,
|
|
wlan_notification_msm_peer_join,
|
|
wlan_notification_msm_peer_leave,
|
|
wlan_notification_msm_end);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_NOTIFICATION_SECURITY = ^Tndu_WLAN_NOTIFICATION_SECURITY;
|
|
Tndu_WLAN_NOTIFICATION_SECURITY = (
|
|
wlan_notification_security_start = NDU_L2_NOTIFICATION_CODE_PUBLIC_BEGIN,
|
|
wlan_notification_security_end);
|
|
Tndu_WLAN_NOTIFICATION_DATA = Tndu_L2_NOTIFICATION_DATA;
|
|
Pndu_WLAN_NOTIFICATION_DATA = ^Tndu_WLAN_NOTIFICATION_DATA;
|
|
Tndu_WLAN_NOTIFICATION_CALLBACK = PVOID;
|
|
Pndu_WLAN_NOTIFICATION_CALLBACK = PVOID;
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_OPCODE_VALUE_TYPE = ^Tndu_WLAN_OPCODE_VALUE_TYPE;
|
|
Tndu_WLAN_OPCODE_VALUE_TYPE = (
|
|
wlan_opcode_value_type_query_only = 0,
|
|
wlan_opcode_value_type_set_by_group_policy,
|
|
wlan_opcode_value_type_set_by_user,
|
|
wlan_opcode_value_type_invalid);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_INTF_OPCODE = ^Tndu_WLAN_INTF_OPCODE;
|
|
Tndu_WLAN_INTF_OPCODE = (
|
|
wlan_intf_opcode_autoconf_start = $000000000,
|
|
wlan_intf_opcode_autoconf_enabled,
|
|
wlan_intf_opcode_background_scan_enabled,
|
|
wlan_intf_opcode_media_streaming_mode,
|
|
wlan_intf_opcode_radio_state,
|
|
wlan_intf_opcode_bss_type,
|
|
wlan_intf_opcode_interface_state,
|
|
wlan_intf_opcode_current_connection,
|
|
wlan_intf_opcode_channel_number,
|
|
wlan_intf_opcode_supported_infrastructure_auth_cipher_pairs,
|
|
wlan_intf_opcode_supported_adhoc_auth_cipher_pairs,
|
|
wlan_intf_opcode_supported_country_or_region_string_list,
|
|
wlan_intf_opcode_autoconf_end = $0fffffff,
|
|
wlan_intf_opcode_msm_start = $10000100,
|
|
wlan_intf_opcode_statistics,
|
|
wlan_intf_opcode_rssi,
|
|
wlan_intf_opcode_msm_end = $1fffffff,
|
|
wlan_intf_opcode_security_start = $20010000,
|
|
wlan_intf_opcode_security_end = $2fffffff,
|
|
wlan_intf_opcode_ihv_start = $30000000,
|
|
wlan_intf_opcode_ihv_end = $3fffffff);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_AUTOCONF_OPCODE = ^Tndu_WLAN_AUTOCONF_OPCODE;
|
|
Tndu_WLAN_AUTOCONF_OPCODE = (
|
|
wlan_autoconf_opcode_start = 0,
|
|
wlan_autoconf_opcode_show_denied_networks,
|
|
wlan_autoconf_opcode_power_setting,
|
|
wlan_autoconf_opcode_connect_with_all_user_profile_only,
|
|
wlan_autoconf_opcode_end);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_IHV_CONTROL_TYPE = ^Tndu_WLAN_IHV_CONTROL_TYPE;
|
|
Tndu_WLAN_IHV_CONTROL_TYPE = (
|
|
wlan_ihv_control_type_service,
|
|
wlan_ihv_control_type_driver);
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_FILTER_LIST_TYPE = ^Tndu_WLAN_FILTER_LIST_TYPE;
|
|
Tndu_WLAN_FILTER_LIST_TYPE = (
|
|
wlan_filter_list_type_gp_permit,
|
|
wlan_filter_list_type_gp_deny,
|
|
wlan_filter_list_type_user_permit,
|
|
wlan_filter_list_type_user_deny);
|
|
Pndu_WLAN_PHY_FRAME_STATISTICS = ^Tndu_WLAN_PHY_FRAME_STATISTICS;
|
|
Tndu_WLAN_PHY_FRAME_STATISTICS = record
|
|
ullTransmittedFrameCount: ulonglong;
|
|
ullMulticastTransmittedFrameCount: ulonglong;
|
|
ullFailedCount: ulonglong;
|
|
ullRetryCount: ulonglong;
|
|
ullMultipleRetryCount: ulonglong;
|
|
ullMaxTXLifetimeExceededCount: ulonglong;
|
|
ullTransmittedFragmentCount: ulonglong;
|
|
ullRTSSuccessCount: ulonglong;
|
|
ullRTSFailureCount: ulonglong;
|
|
ullACKFailureCount: ulonglong;
|
|
ullReceivedFrameCount: ulonglong;
|
|
ullMulticastReceivedFrameCount: ulonglong;
|
|
ullPromiscuousReceivedFrameCount: ulonglong;
|
|
ullMaxRXLifetimeExceededCount: ulonglong;
|
|
ullFrameDuplicateCount: ulonglong;
|
|
ullReceivedFragmentCount: ulonglong;
|
|
ullPromiscuousReceivedFragmentCount: ulonglong;
|
|
ullFCSErrorCount: ulonglong;
|
|
end;
|
|
Pndu_WLAN_MAC_FRAME_STATISTICS = ^Tndu_WLAN_MAC_FRAME_STATISTICS;
|
|
Tndu_WLAN_MAC_FRAME_STATISTICS = record
|
|
ullTransmittedFrameCount: ulonglong;
|
|
ullReceivedFrameCount: ulonglong;
|
|
ullWEPExcludedCount: ulonglong;
|
|
ullTKIPLocalMICFailures: ulonglong;
|
|
ullTKIPReplays: ulonglong;
|
|
ullTKIPICVErrorCount: ulonglong;
|
|
ullCCMPReplays: ulonglong;
|
|
ullCCMPDecryptErrors: ulonglong;
|
|
ullWEPUndecryptableCount: ulonglong;
|
|
ullWEPICVErrorCount: ulonglong;
|
|
ullDecryptSuccessCount: ulonglong;
|
|
ullDecryptFailureCount: ulonglong;
|
|
end;
|
|
Pndu_WLAN_STATISTICS = ^Tndu_WLAN_STATISTICS;
|
|
Tndu_WLAN_STATISTICS = record
|
|
ullFourWayHandshakeFailures: ulonglong;
|
|
ullTKIPCounterMeasuresInvoked: ulonglong;
|
|
ullReserved: ulonglong;
|
|
MacUcastCounters: Tndu_WLAN_MAC_FRAME_STATISTICS;
|
|
MacMcastCounters: Tndu_WLAN_MAC_FRAME_STATISTICS;
|
|
dwNumberOfPhys: DWORD;
|
|
PhyCounters: array[0..0] of Tndu_WLAN_PHY_FRAME_STATISTICS;
|
|
end;
|
|
const
|
|
NDU_WLAN_READ_ACCESS = (NDU_STANDARD_RIGHTS_READ or NDU_FILE_READ_DATA);
|
|
NDU_WLAN_EXECUTE_ACCESS = (NDU_WLAN_READ_ACCESS or
|
|
NDU_STANDARD_RIGHTS_EXECUTE or NDU_FILE_EXECUTE);
|
|
NDU_WLAN_WRITE_ACCESS = (NDU_WLAN_READ_ACCESS or NDU_WLAN_EXECUTE_ACCESS or
|
|
NDU_STANDARD_RIGHTS_WRITE or NDU_FILE_WRITE_DATA or NDU_DELETE or
|
|
NDU_WRITE_DAC);
|
|
type
|
|
{$MINENUMSIZE 4}
|
|
Pndu_WLAN_SECURABLE_OBJECT = ^Tndu_WLAN_SECURABLE_OBJECT;
|
|
Tndu_WLAN_SECURABLE_OBJECT = (
|
|
wlan_secure_permit_list = 0,
|
|
wlan_secure_deny_list,
|
|
wlan_secure_ac_enabled,
|
|
wlan_secure_bc_scan_enabled,
|
|
wlan_secure_bss_type,
|
|
wlan_secure_show_denied,
|
|
wlan_secure_interface_properties,
|
|
wlan_secure_ihv_control,
|
|
wlan_secure_all_user_profiles_order,
|
|
wlan_secure_sso,
|
|
wlan_secure_add_new_all_user_profiles,
|
|
wlan_secure_add_new_per_user_profiles,
|
|
wlan_secure_manual_connect_single_user,
|
|
wlan_secure_manual_connect_multi_user,
|
|
wlan_secure_media_streaming_mode_enabled,
|
|
NDU_WLAN_SECURABLE_OBJECT_COUNT);
|
|
const
|
|
wlan_api_dll = 'wlanapi.dll';
|
|
function WlanOpenHandle(dwClientVersion: DWORD; pReserved: PVOID;
|
|
pdwNegotiatedVersion: PWord; phClientHandle: PHandle): DWORD; stdcall;
|
|
function WlanCloseHandle(hClientHandle: Handle;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanEnumInterfaces(hClientHandle: Handle;
|
|
pReserved: PVOID; ppInterfaceList: PPndu_WLAN_INTERFACE_INFO_LIST
|
|
): DWORD; stdcall;
|
|
function WlanSetAutoConfigParameter(hClientHandle: Handle;
|
|
OpCode: Tndu_WLAN_AUTOCONF_OPCODE; dwDataSize: DWORD;
|
|
const pData: PVOID; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanQueryAutoConfigParameter(hClientHandle: Handle;
|
|
OpCode: Tndu_WLAN_AUTOCONF_OPCODE; pReserved: PVOID;
|
|
pdwDataSize: PDWORD; ppData: PPVOID;
|
|
pWlanOpcodeValueType: Pndu_WLAN_OPCODE_VALUE_TYPE): DWORD; stdcall;
|
|
function WlanGetInterfaceCapability(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; pReserved: PVOID;
|
|
ppCapability: PPndu_WLAN_INTERFACE_CAPABILITY): DWORD; stdcall;
|
|
function WlanSetInterface(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; OpCode: Tndu_WLAN_INTF_OPCODE;
|
|
dwDataSize: DWORD; const pData: PVOID; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanQueryInterface(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; OpCode: Tndu_WLAN_INTF_OPCODE;
|
|
pReserved: PVOID; pdwDataSize: PDWORD; ppData: PPVOID;
|
|
pWlanOpcodeValueType: Pndu_WLAN_OPCODE_VALUE_TYPE): DWORD; stdcall;
|
|
function WlanIhvControl(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; aType: Tndu_WLAN_IHV_CONTROL_TYPE;
|
|
dwInBufferSize: DWORD; pInBuffer: pvoid; dwOutBufferSize: DWORD;
|
|
pOutBuffer: PVOID): DWORD; stdcall;
|
|
function WlanScan(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; const pDot11Ssid: Pndu_DOT11_SSID;
|
|
const pIeData: Pndu_WLAN_RAW_DATA; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanGetAvailableNetworkList(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; dwFlags: DWORD; pReserved: PVOID;
|
|
var pAvailableNetworkList: Pndu_WLAN_AVAILABLE_NETWORK_LIST): DWORD; stdcall;
|
|
function WlanGetNetworkBssList(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; const pDot11Ssid: Pndu_DOT11_SSID;
|
|
dot11BssType: Tndu_DOT11_BSS_TYPE; bSecurityEnabled: BOOL;
|
|
pReserved: PVOID; ppWlanBssList: PPndu_WLAN_BSS_LIST): DWORD; stdcall;
|
|
function WlanConnect(hClientHandle: Handle; const pInterfaceGuid: PGUID;
|
|
const pConnectionParameters: Pndu_WLAN_CONNECTION_PARAMETERS;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanDisconnect(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanRegisterNotification(hClientHandle: Handle;
|
|
dwNotifSource: DWORD; bIgnoreDuplicate: Bool;
|
|
funcCallback: Tndu_WLAN_NOTIFICATION_CALLBACK;
|
|
pCallbackContext: PVOID; pReserved: PVOID;
|
|
pdwPrevNotifSource: PDWORD): DWORD; stdcall;
|
|
function WlanGetProfile(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
pReserved: PVOID; pstrProfileXml: LPWSTR; pdwFlags: PDWORD;
|
|
pdwGrantedAccess: PDWORD): DWORD; stdcall;
|
|
function WlanSetProfileEapUserData(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
eapType: Tndu_EAP_METHOD_TYPE; dwFlags: DWORD;
|
|
dwEapUserDataSize: DWORD; const pbEapUserData: LPByte;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanSetProfileEapXMLUserData(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
eapType: Tndu_EAP_METHOD_TYPE; dwFlags: DWORD;
|
|
strEapXMLUserData: LPCWSTR; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanSetProfile(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; dwFlags: DWORD; strProfileXml: LPCWSTR;
|
|
strAllUserProfileSecurity: LPCWSTR;
|
|
bOverwrite: Bool; pReserved: PVOID;
|
|
pdwReasonCode: PDWORD): DWORD; stdcall;
|
|
function WlanDeleteProfile(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanRenameProfile(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strOldProfileName: LPCWSTR;
|
|
strNewProfileName: LPCWSTR; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanGetProfileList(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; pReserved: PVOID;
|
|
ppProfileList: PPndu_WLAN_PROFILE_INFO_LIST): DWORD; stdcall;
|
|
function WlanSetProfileList(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; dwItems: DWORD;
|
|
strProfileNames: LPCWSTR; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanSetProfilePosition(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
dwPosition: DWORD; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanSetProfileCustomUserData(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
dwDataSize: DWORD; const pData: LPByte;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanGetProfileCustomUserData(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
pReserved: PVOID; pdwDataSize: PDWORD; ppData: PPByte): DWORD; stdcall;
|
|
function WlanSetFilterList(hClientHandle: Handle;
|
|
wlanFilterListType: Tndu_WLAN_FILTER_LIST_TYPE;
|
|
const pNetworkList: Pndu_DOT11_NETWORK_LIST;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanGetFilterList(hClientHandle: Handle;
|
|
wlanFilterListType: Tndu_WLAN_FILTER_LIST_TYPE;
|
|
pReserved: PVOID; ppNetworkList: PPndu_DOT11_NETWORK_LIST): DWORD; stdcall;
|
|
function WlanSetPsdIEDataList(hClientHandle: Handle; strFormat: LPCWSTR;
|
|
const pPsdIEDataList: Pndu_WLAN_RAW_DATA_LIST;
|
|
pReserved: pvoid): DWORD; stdcall;
|
|
function WlanSaveTemporaryProfile(hClientHandle: Handle;
|
|
const pInterfaceGuid: PGUID; strProfileName: LPCWSTR;
|
|
strAllUserProfileSecurity: LPCWSTR; dwFlags: DWORD;
|
|
bOverWrite: Bool; pReserved: PVOID): DWORD; stdcall;
|
|
function WlanExtractPsdIEDataList(hClientHandle: Handle;
|
|
dwIeDataSize: DWORD; const pRawIeData: PByte;
|
|
strFormat: LPCWSTR; pReserved: PVOID;
|
|
ppPsdIEDataList: PPndu_WLAN_RAW_DATA_LIST): DWORD; stdcall;
|
|
function WlanReasonCodeToString(dwReasonCode: DWORD;
|
|
dwBufferSize: DWORD; pStringBuffer: PWChar;
|
|
pReserved: PVOID): DWORD; stdcall;
|
|
function WlanAllocateMemory(dwMemorySize: DWORD): pvoid; stdcall;
|
|
function WlanFreeMemory(pMemory: PVOID): PVOID; stdcall;
|
|
function WlanSetSecuritySettings(hClientHandle: Handle;
|
|
SecurableObject: Tndu_WLAN_SECURABLE_OBJECT;
|
|
strModifiedSDDL: LPCWSTR): DWORD; stdcall;
|
|
function WlanGetSecuritySettings(hClientHandle: Handle;
|
|
SecurableObject: Tndu_WLAN_SECURABLE_OBJECT;
|
|
pstrCurrentSDDL: PLPWSTR; pdwGrantedAccess: PWORD): DWORD; stdcall;
|
|
const
|
|
NDU_WLAN_UI_API_VERSION = 1;
|
|
NDU_WLAN_UI_API_INITIAL_VERSION = 1;
|
|
type
|
|
Pndu_WL_DISPLAY_PAGES = ^Tndu_WL_DISPLAY_PAGES;
|
|
Tndu_WL_DISPLAY_PAGES = (
|
|
WLConnectionPage,
|
|
WLSecurityPage);
|
|
function WlanUIEditProfile(dwClientVersion: DWORD;
|
|
wstrProfileName: LPCWSTR; pInterfaceGuid: PGUID;
|
|
hWnd: HWND; wlStartPage: Tndu_WL_DISPLAY_PAGES;
|
|
pReserved: PVOID; pWlanReasonCode: Pndu_WLAN_REASON_CODE): DWORD; stdcall;
|
|
function DOT11_AUTH_ALGORITHM_To_String(Dummy: DWORD): AnsiString;
|
|
function DOT11_CIPHER_ALGORITHM_To_String(Dummy: DWORD): AnsiString;
|
|
implementation
|
|
function DOT11_AUTH_ALGORITHM_To_String(Dummy: DWORD): AnsiString;
|
|
begin
|
|
Result := '';
|
|
case Dummy of
|
|
NDU_DOT11_AUTH_ALGORITHM_OPEN_SYSTEM:
|
|
Result := '80211_OPEN';
|
|
NDU_DOT11_AUTH_ALGORITHM_SHARED_KEY:
|
|
Result := '80211_SHARED_KEY';
|
|
NDU_DOT11_AUTH_ALGORITHM_WPA:
|
|
Result := 'WPA';
|
|
NDU_DOT11_AUTH_ALGORITHM_WPA_PSK:
|
|
Result := 'WPA_PSK';
|
|
NDU_DOT11_AUTH_ALGORITHM_WPA_NONE:
|
|
Result := 'WPA_NONE';
|
|
NDU_DOT11_AUTH_ALGORITHM_RSNA:
|
|
Result := 'RSNA';
|
|
NDU_DOT11_AUTH_ALGORITHM_RSNA_PSK:
|
|
Result := 'RSNA_PSK';
|
|
NDU_DOT11_AUTH_ALGO_IHV_START:
|
|
Result := 'IHV_START';
|
|
NDU_DOT11_AUTH_ALGO_IHV_END:
|
|
Result := 'IHV_END';
|
|
end;
|
|
end;
|
|
|
|
function DOT11_CIPHER_ALGORITHM_To_String(Dummy: DWORD): AnsiString;
|
|
begin
|
|
Result := '';
|
|
case Dummy of
|
|
DOT11_CIPHER_ALGO_NONE:
|
|
Result := 'NONE';
|
|
DOT11_CIPHER_ALGO_WEP40:
|
|
Result := 'WEP40';
|
|
DOT11_CIPHER_ALGO_TKIP:
|
|
Result := 'TKIP';
|
|
DOT11_CIPHER_ALGO_CCMP:
|
|
Result := 'CCMP';
|
|
DOT11_CIPHER_ALGO_WEP104:
|
|
Result := 'WEP104';
|
|
DOT11_CIPHER_ALGO_WPA_USE_GROUP:
|
|
Result := 'WPA_USE_GROUP OR RSN_USE_GROUP';
|
|
// DOT11_CIPHER_ALGO_RSN_USE_GROUP : Result:= 'RSN_USE_GROUP';
|
|
DOT11_CIPHER_ALGO_WEP:
|
|
Result := 'WEP';
|
|
DOT11_CIPHER_ALGO_IHV_START:
|
|
Result := 'IHV_START';
|
|
DOT11_CIPHER_ALGO_IHV_END:
|
|
Result := 'IHV_END';
|
|
end;
|
|
end;
|
|
function WlanOpenHandle; external wlan_api_dll name 'WlanOpenHandle';
|
|
function WlanCloseHandle; external wlan_api_dll name 'WlanCloseHandle';
|
|
function WlanEnumInterfaces; external wlan_api_dll name 'WlanEnumInterfaces';
|
|
function WlanSetAutoConfigParameter; external wlan_api_dll name 'WlanSetAutoConfigParameter';
|
|
function WlanQueryAutoConfigParameter; external wlan_api_dll name 'WlanQueryAutoConfigParameter';
|
|
function WlanGetInterfaceCapability; external wlan_api_dll name 'WlanGetInterfaceCapability';
|
|
function WlanSetInterface; external wlan_api_dll name 'WlanSetInterface';
|
|
function WlanQueryInterface; external wlan_api_dll name 'WlanQueryInterface';
|
|
function WlanIhvControl; external wlan_api_dll name 'WlanIhvControl';
|
|
function WlanScan; external wlan_api_dll name 'WlanScan';
|
|
function WlanGetAvailableNetworkList; external wlan_api_dll name 'WlanGetAvailableNetworkList';
|
|
function WlanGetNetworkBssList; external wlan_api_dll name 'WlanGetNetworkBssList';
|
|
function WlanConnect; external wlan_api_dll name 'WlanConnect';
|
|
function WlanDisconnect; external wlan_api_dll name 'WlanDisconnect';
|
|
function WlanRegisterNotification; external wlan_api_dll name 'WlanRegisterNotification';
|
|
function WlanGetProfile; external wlan_api_dll name 'WlanGetProfile';
|
|
function WlanSetProfileEapUserData; external wlan_api_dll name 'WlanSetProfileEapUserData';
|
|
function WlanSetProfileEapXMLUserData; external wlan_api_dll name 'WlanSetProfileEapXMLUserData';
|
|
function WlanSetProfile; external wlan_api_dll name 'WlanSetProfile';
|
|
function WlanDeleteProfile; external wlan_api_dll name 'WlanDeleteProfile';
|
|
function WlanRenameProfile; external wlan_api_dll name 'WlanRenameProfile';
|
|
function WlanGetProfileList; external wlan_api_dll name 'WlanGetProfileList';
|
|
function WlanSetProfileList; external wlan_api_dll name 'WlanSetProfileList';
|
|
function WlanSetProfilePosition; external wlan_api_dll name 'WlanSetProfilePosition';
|
|
function WlanSetProfileCustomUserData; external wlan_api_dll name 'WlanSetProfileCustomUserData';
|
|
function WlanGetProfileCustomUserData; external wlan_api_dll name 'WlanGetProfileCustomUserData';
|
|
function WlanSetFilterList; external wlan_api_dll name 'WlanSetFilterList';
|
|
function WlanGetFilterList; external wlan_api_dll name 'WlanGetFilterList';
|
|
function WlanSetPsdIEDataList; external wlan_api_dll name 'WlanSetPsdIEDataList';
|
|
function WlanSaveTemporaryProfile; external wlan_api_dll name 'WlanSaveTemporaryProfile';
|
|
function WlanExtractPsdIEDataList; external wlan_api_dll name 'WlanExtractPsdIEDataList';
|
|
function WlanReasonCodeToString; external wlan_api_dll name 'WlanReasonCodeToString';
|
|
function WlanAllocateMemory; external wlan_api_dll name 'WlanAllocateMemory';
|
|
function WlanFreeMemory; external wlan_api_dll name 'WlanFreeMemory';
|
|
function WlanSetSecuritySettings; external wlan_api_dll name 'WlanSetSecuritySettings';
|
|
function WlanGetSecuritySettings; external wlan_api_dll name 'WlanGetSecuritySettings';
|
|
function WlanUIEditProfile; external wlan_api_dll name 'WlanUIEditProfile';
|
|
end.
|