Fungsi WlanEnumInterfaces (wlanapi.h)

Fungsi WlanEnumInterfaces menghitung semua antarmuka LAN nirkabel yang saat ini diaktifkan pada komputer lokal.

Sintaks

DWORD WlanEnumInterfaces(
  [in]  HANDLE                    hClientHandle,
  [in]  PVOID                     pReserved,
  [out] PWLAN_INTERFACE_INFO_LIST *ppInterfaceList
);

Parameter

[in] hClientHandle

Handel sesi klien, diperoleh dengan panggilan sebelumnya ke fungsi WlanOpenHandle .

[in] pReserved

Disiapkan untuk penggunaan masa mendatang. Parameter ini harus diatur ke NULL.

[out] ppInterfaceList

Pointer ke penyimpanan untuk pointer guna menerima daftar antarmuka LAN nirkabel yang dikembalikan dalam struktur WLAN_INTERFACE_INFO_LIST .

Buffer untuk WLAN_INTERFACE_INFO_LIST yang dikembalikan dialokasikan oleh fungsi WlanEnumInterfaces jika panggilan berhasil.

Nilai kembali

Jika fungsi berhasil, nilai yang dikembalikan ERROR_SUCCESS.

Jika fungsi gagal, nilai yang dikembalikan mungkin salah satu kode pengembalian berikut.

Menampilkan kode Deskripsi
ERROR_INVALID_PARAMETER
Parameter salah. Kesalahan ini dikembalikan jika parameter hClientHandle atau ppInterfaceList adalah NULL. Kesalahan ini dikembalikan jika pReserved bukan NULL. Kesalahan ini juga dikembalikan jika parameter hClientHandle tidak valid.
ERROR_INVALID_HANDLE
Handel hClientHandle tidak ditemukan dalam tabel handel.
RPC_STATUS
Berbagai kode kesalahan.
ERROR_NOT_ENOUGH_MEMORY
Memori tidak cukup tersedia untuk memproses permintaan ini dan mengalokasikan memori untuk hasil kueri.

Keterangan

Fungsi WlanEnumInterfaces mengalokasikan memori untuk daftar antarmuka yang dikembalikan yang dikembalikan dalam buffer yang diarahkan oleh parameter ppInterfaceList ketika fungsi berhasil. Memori yang digunakan untuk buffer yang diacu oleh parameter ppInterfaceList harus dirilis dengan memanggil fungsi WlanFreeMemory setelah buffer tidak lagi diperlukan.

Contoh

Contoh berikut menghitung antarmuka LAN nirkabel di komputer lokal dan mencetak nilai dari struktur WLAN_INTERFACE_INFO_LIST yang diambil dan struktur WLAN_INTERFACE_INFO yang dijumlahkan.

Catatan Contoh ini akan gagal dimuat pada Windows Server 2008 dan Windows Server 2008 R2 jika Layanan LAN Nirkabel tidak diinstal dan dimulai.
 
#ifndef UNICODE
#define UNICODE
#endif

#include <windows.h>
#include <wlanapi.h>
#include <objbase.h>
#include <wtypes.h>

#include <stdio.h>
#include <stdlib.h>

// Need to link with Wlanapi.lib and Ole32.lib
#pragma comment(lib, "wlanapi.lib")
#pragma comment(lib, "ole32.lib")

int wmain()
{

    // Declare and initialize variables.

    HANDLE hClient = NULL;
    DWORD dwMaxClient = 2;   //    
    DWORD dwCurVersion = 0;
    DWORD dwResult = 0;
    int iRet = 0;
    
    WCHAR GuidString[40] = {0};
     
    int i;

    /* variables used for WlanEnumInterfaces  */
    
    PWLAN_INTERFACE_INFO_LIST pIfList = NULL;
    PWLAN_INTERFACE_INFO pIfInfo = NULL;

    
    dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient); 
    if (dwResult != ERROR_SUCCESS)  {
        wprintf(L"WlanOpenHandle failed with error: %u\n", dwResult);
        // FormatMessage can be used to find out why the function failed
        return 1;
    }
    
    dwResult = WlanEnumInterfaces(hClient, NULL, &pIfList); 
    if (dwResult != ERROR_SUCCESS)  {
        wprintf(L"WlanEnumInterfaces failed with error: %u\n", dwResult);
        // FormatMessage can be used to find out why the function failed
        return 1;
    }
    else {
        wprintf(L"Num Entries: %lu\n", pIfList->dwNumberOfItems);
        wprintf(L"Current Index: %lu\n", pIfList->dwIndex);
        for (i = 0; i < (int) pIfList->dwNumberOfItems; i++) {
            pIfInfo = (WLAN_INTERFACE_INFO *) &pIfList->InterfaceInfo[i];
            wprintf(L"  Interface Index[%d]:\t %lu\n", i, i);
            iRet = StringFromGUID2(pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString, 39); 
            // For c rather than C++ source code, the above line needs to be
            // iRet = StringFromGUID2(&pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString, 39); 
            if (iRet == 0)
                wprintf(L"StringFromGUID2 failed\n");
            else {
                wprintf(L"  InterfaceGUID[%d]: %ws\n",i, GuidString);
            }    
            wprintf(L"  Interface Description[%d]: %ws", i, 
                pIfInfo->strInterfaceDescription);
            wprintf(L"\n");
            wprintf(L"  Interface State[%d]:\t ", i);
            switch (pIfInfo->isState) {
            case wlan_interface_state_not_ready:
                wprintf(L"Not ready\n");
                break;
            case wlan_interface_state_connected:
                wprintf(L"Connected\n");
                break;
            case wlan_interface_state_ad_hoc_network_formed:
                wprintf(L"First node in a ad hoc network\n");
                break;
            case wlan_interface_state_disconnecting:
                wprintf(L"Disconnecting\n");
                break;
            case wlan_interface_state_disconnected:
                wprintf(L"Not connected\n");
                break;
            case wlan_interface_state_associating:
                wprintf(L"Attempting to associate with a network\n");
                break;
            case wlan_interface_state_discovering:
                wprintf(L"Auto configuration is discovering settings for the network\n");
                break;
            case wlan_interface_state_authenticating:
                wprintf(L"In process of authenticating\n");
                break;
            default:
                wprintf(L"Unknown state %ld\n", pIfInfo->isState);
                break;
            }
            wprintf(L"\n");
        }
    }

    if (pIfList != NULL) {
        WlanFreeMemory(pIfList);
        pIfList = NULL;
    }
    return 0;
}

Persyaratan

   
Klien minimum yang didukung Windows Vista, Windows XP dengan SP3 [hanya aplikasi desktop]
Server minimum yang didukung Windows Server 2008 [hanya aplikasi desktop]
Target Platform Windows
Header wlanapi.h (termasuk Wlanapi.h)
Pustaka Wlanapi.lib
DLL Wlanapi.dll
Redistribusi API LAN Nirkabel untuk Windows XP dengan SP2

Lihat juga

WLAN_INTERFACE_INFO

WLAN_INTERFACE_INFO_LIST

WlanFreeMemory