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 |
---|---|
|
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. |
|
Handel hClientHandle tidak ditemukan dalam tabel handel. |
|
Berbagai kode kesalahan. |
|
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.
#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
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk