I was writed "wlanapi.h".
It is WLAN API windows header.
I will be happy to see it in public D distributive.

What I must to do for it ?
What I must to do for add new file to "C:\D\dmd2\src\druntime\src\core\sys\windows\" ?
Where to send it ?


// cat
import core.sys.windows.windows;


enum UINT WLAN_MAX_NAME_LENGTH      = 256;
enum UINT DOT11_SSID_MAX_LENGTH     = 32;
enum UINT WLAN_MAX_PHY_TYPE_NUMBER  = 8;

enum UINT WLAN_AVAILABLE_NETWORK_CONNECTED    = 1;
enum UINT WLAN_AVAILABLE_NETWORK_HAS_PROFILE  = 2;

struct WLAN_PROFILE_INFO
{
        WCHAR[WLAN_MAX_NAME_LENGTH] strProfileName;
        DWORD                       dwFlags;
};
alias WLAN_PROFILE_INFO* PWLAN_PROFILE_INFO;

struct WLAN_PROFILE_INFO_LIST
{
        DWORD dwNumberOfItems;
        DWORD dwIndex;
        WLAN_PROFILE_INFO[1] ProfileInfo;
};
alias WLAN_PROFILE_INFO_LIST* PWLAN_PROFILE_INFO_LIST;

enum 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
};
alias WLAN_INTERFACE_STATE* PWLAN_INTERFACE_STATE;

struct WLAN_INTERFACE_INFO
{
        GUID                        InterfaceGuid;
        WCHAR[WLAN_MAX_NAME_LENGTH] strInterfaceDescription;
        WLAN_INTERFACE_STATE        isState;
};
alias WLAN_INTERFACE_INFO* PWLAN_INTERFACE_INFO;

struct WLAN_INTERFACE_INFO_LIST
{
        DWORD                   dwNumberOfItems;
        DWORD                   dwIndex;
        WLAN_INTERFACE_INFO[1]  InterfaceInfo;
};
alias WLAN_INTERFACE_INFO_LIST* PWLAN_INTERFACE_INFO_LIST;

struct DOT11_SSID
{
        ULONG                           uSSIDLength;
        UCHAR[DOT11_SSID_MAX_LENGTH]    ucSSID;
};
alias DOT11_SSID* PDOT11_SSID;

enum DOT11_BSS_TYPE
{
        dot11_BSS_type_infrastructure   = 1,
        dot11_BSS_type_independent      = 2,
        dot11_BSS_type_any              = 3
};
alias DOT11_BSS_TYPE* PDOT11_BSS_TYPE;

enum DOT11_PHY_TYPE
{
        dot11_phy_type_unknown      = 0,
        dot11_phy_type_any          = dot11_phy_type_unknown,
        dot11_phy_type_fhss         = 1,
        dot11_phy_type_dsss         = 2,
        dot11_phy_type_irbaseband   = 3,
        dot11_phy_type_ofdm         = 4,
        dot11_phy_type_hrdsss       = 5,
        dot11_phy_type_erp          = 6,
        dot11_phy_type_ht           = 7,
};
alias DOT11_PHY_TYPE* PDOT11_PHY_TYPE;

enum DOT11_AUTH_ALGORITHM
{
        DOT11_AUTH_ALGO_80211_OPEN          = 1,
        DOT11_AUTH_ALGO_80211_SHARED_KEY    = 2,
        DOT11_AUTH_ALGO_WPA                 = 3,
        DOT11_AUTH_ALGO_WPA_PSK             = 4,
        DOT11_AUTH_ALGO_WPA_NONE            = 5,
        DOT11_AUTH_ALGO_RSNA                = 6,
        DOT11_AUTH_ALGO_RSNA_PSK            = 7,
};
alias DOT11_AUTH_ALGORITHM* PDOT11_AUTH_ALGORITHM;

enum DOT11_CIPHER_ALGORITHM
{
        DOT11_CIPHER_ALGO_NONE          = 0x00,
        DOT11_CIPHER_ALGO_WEP40         = 0x01,
        DOT11_CIPHER_ALGO_TKIP          = 0x02,
        DOT11_CIPHER_ALGO_CCMP          = 0x04,
        DOT11_CIPHER_ALGO_WEP104        = 0x05,
        DOT11_CIPHER_ALGO_WPA_USE_GROUP = 0x100,
        DOT11_CIPHER_ALGO_RSN_USE_GROUP = 0x100,
        DOT11_CIPHER_ALGO_WEP           = 0x101,
};
alias DOT11_CIPHER_ALGORITHM* PDOT11_CIPHER_ALGORITHM;

struct WLAN_AVAILABLE_NETWORK
{
        WCHAR[WLAN_MAX_NAME_LENGTH]                 strProfileName;
        DOT11_SSID                                  dot11Ssid;
        DOT11_BSS_TYPE                              dot11BssType;
        ULONG                                       uNumberOfBssids;
        BOOL                                        bNetworkConnectable;
DWORD wlanNotConnectableReason;
        ULONG                                       uNumberOfPhyTypes;
        DOT11_PHY_TYPE[WLAN_MAX_PHY_TYPE_NUMBER]    dot11PhyTypes;
        BOOL                                        bMorePhyTypes;
        ULONG                                       wlanSignalQuality;
        BOOL                                        bSecurityEnabled;
DOT11_AUTH_ALGORITHM dot11DefaultAuthAlgorithm; DOT11_CIPHER_ALGORITHM dot11DefaultCipherAlgorithm;
        DWORD                                       dwFlags;
        DWORD                                       dwReserved;
};
alias WLAN_AVAILABLE_NETWORK* PWLAN_AVAILABLE_NETWORK;

struct WLAN_AVAILABLE_NETWORK_LIST
{
        DWORD                       dwNumberOfItems;
        DWORD                       dwIndex;
        WLAN_AVAILABLE_NETWORK[1]   Network;
};
alias WLAN_AVAILABLE_NETWORK_LIST* PWLAN_AVAILABLE_NETWORK_LIST;


extern ( Windows )
{
DWORD WlanDeleteProfile ( HANDLE, const GUID*, LPCWSTR, PVOID ); DWORD WlanSetProfile ( HANDLE, const GUID*, DWORD, LPCWSTR, LPCWSTR, BOOL, PVOID, PDWORD ); DWORD WlanGetProfile ( HANDLE, const GUID*, LPCWSTR, PVOID, LPWSTR*, DWORD*, DWORD* ); DWORD WlanOpenHandle ( DWORD, PVOID, PDWORD, PHANDLE );
    DWORD WlanCloseHandle               ( HANDLE, PVOID );
DWORD WlanGetProfileList ( HANDLE, const GUID*, PVOID, PWLAN_PROFILE_INFO_LIST * ); DWORD WlanGetAvailableNetworkList ( HANDLE, const GUID *, DWORD, PVOID, PWLAN_AVAILABLE_NETWORK_LIST * ); DWORD WlanEnumInterfaces ( HANDLE, PVOID, PWLAN_INTERFACE_INFO_LIST * );
    void  WlanFreeMemory                ( PVOID );
DWORD WlanReasonCodeToString ( DWORD, DWORD, PWCHAR, PVOID ); DWORD WlanSetProfilePosition ( HANDLE, const GUID *, LPCWSTR, DWORD, PVOID );
}

  • wlanapi.h Виталий Фадеев via Digitalmars-d-announce

Reply via email to