BSOne.SFC/Tocsg.Lib/VCL/Other/EM.nduWlanAPI.pas

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.