Fungsi WlanDeleteProfile (wlanapi.h)
Fungsi WlanDeleteProfile menghapus profil nirkabel untuk antarmuka nirkabel pada komputer lokal.
Sintaks
DWORD WlanDeleteProfile(
[in] HANDLE hClientHandle,
[in] const GUID *pInterfaceGuid,
[in] LPCWSTR strProfileName,
PVOID pReserved
);
Parameter
[in] hClientHandle
Handel sesi klien, diperoleh dengan panggilan sebelumnya ke fungsi WlanOpenHandle .
[in] pInterfaceGuid
GUID antarmuka tempat menghapus profil.
[in] strProfileName
Nama profil yang akan dihapus. Nama profil peka huruf besar/kecil. String ini harus dihentikan NULL.
Windows XP dengan SP3 dan WIRELESS LAN API untuk Windows XP dengan SP2: Nama yang disediakan harus cocok dengan nama profil yang diturunkan secara otomatis dari SSID jaringan. Untuk profil jaringan infrastruktur, SSID harus disediakan untuk nama profil. Untuk profil jaringan ad hoc, nama yang disediakan harus SSID dari jaringan ad hoc diikuti oleh -adhoc
.
pReserved
Disiapkan untuk penggunaan masa mendatang. Harus diatur ke NULL.
Mengembalikan nilai
Jika fungsi berhasil, nilai yang dikembalikan ERROR_SUCCESS.
Jika fungsi gagal, nilai yang dikembalikan mungkin salah satu kode pengembalian berikut.
Menampilkan kode | Deskripsi |
---|---|
|
Parameter hClientHandleadalah NULL atau tidak valid, parameter pInterfaceGuid adalah NULL, parameter strProfileName adalah NULL, atau pReserved bukan NULL. |
|
Handel yang ditentukan dalam parameter hClientHandle tidak ditemukan dalam tabel handel. |
|
Profil nirkabel yang ditentukan oleh strProfileName tidak ditemukan di penyimpanan profil. |
|
Pemanggil tidak memiliki izin yang memadai untuk menghapus profil. |
|
Berbagai kode kesalahan. |
Keterangan
Fungsi WlanDeleteProfile menghapus profil nirkabel untuk antarmuka nirkabel pada komputer lokal.
Semua fungsi LAN nirkabel memerlukan GUID antarmuka untuk antarmuka nirkabel saat melakukan operasi profil. Ketika antarmuka nirkabel dihapus, statusnya dibersihkan dari Layanan LAN Nirkabel (WLANSVC) dan tidak ada operasi profil yang dimungkinkan.
Fungsi WlanDeleteProfile dapat gagal dengan ERROR_INVALID_PARAMETER jika antarmuka nirkabel yang ditentukan dalam parameter pInterfaceGuid untuk profil LAN nirkabel telah dihapus dari sistem (adaptor nirkabel USB yang telah dihapus, misalnya).
Untuk menghapus profil di baris perintah, gunakan perintah netsh wlan delete profile . Untuk informasi selengkapnya, lihat Perintah Netsh untuk Jaringan Area Lokal Nirkabel (wlan).
Contoh
Contoh berikut menghitung antarmuka LAN nirkabel di komputer lokal dan mencoba menghapus profil nirkabel tertentu pada setiap antarmuka LAN nirkabel.
#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 _cdecl wmain(int argc, WCHAR ** argv)
{
// Declare and initialize variables.
HANDLE hClient = NULL;
DWORD dwMaxClient = 2; //
DWORD dwCurVersion = 0;
DWORD dwResult = 0;
DWORD dwRetVal = 0;
int iRet = 0;
WCHAR GuidString[39] = { 0 };
unsigned int i;
/* variables used for WlanEnumInterfaces */
PWLAN_INTERFACE_INFO_LIST pIfList = NULL;
PWLAN_INTERFACE_INFO pIfInfo = NULL;
LPCWSTR pProfileName = NULL;
// Validate the parameters
if (argc < 2) {
wprintf(L"usage: %s <profile>\n", argv[0]);
wprintf(L" Deletes a wireless profile\n");
wprintf(L" Example\n");
wprintf(L" %s \"Default Wireless\"\n", argv[0]);
exit(1);
}
pProfileName = argv[1];
wprintf(L"Information for profile: %ws\n\n", pProfileName);
dwResult = WlanOpenHandle(dwMaxClient, NULL, &dwCurVersion, &hClient);
if (dwResult != ERROR_SUCCESS) {
wprintf(L"WlanOpenHandle failed with error: %u\n", dwResult);
return 1;
// You can use FormatMessage here to find out why the function failed
}
dwResult = WlanEnumInterfaces(hClient, NULL, &pIfList);
if (dwResult != ERROR_SUCCESS) {
wprintf(L"WlanEnumInterfaces failed with error: %u\n", dwResult);
return 1;
// You can use FormatMessage here to find out why the function failed
} else {
wprintf(L"WLAN_INTERFACE_INFO_LIST for this system\n");
wprintf(L"Num Entries: %lu\n", pIfList->dwNumberOfItems);
wprintf(L"Current Index: %lu\n", pIfList->dwIndex);
for (i = 0; i < pIfList->dwNumberOfItems; i++) {
pIfInfo = (WLAN_INTERFACE_INFO *) & pIfList->InterfaceInfo[i];
wprintf(L" Interface Index[%u]:\t %lu\n", i, i);
iRet =
StringFromGUID2(pIfInfo->InterfaceGuid, (LPOLESTR) & GuidString,
sizeof (GuidString) / sizeof (*GuidString));
// For c rather than C++ source code, the above line needs to be
// iRet = StringFromGUID2(&pIfInfo->InterfaceGuid, (LPOLESTR) &GuidString,
// sizeof(GuidString)/sizeof(*GuidString));
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");
dwResult = WlanDeleteProfile(hClient,
&pIfInfo->InterfaceGuid,
pProfileName, NULL);
if (dwResult != ERROR_SUCCESS) {
wprintf
(L"WlanDeleteProfile failed on this interface with error: %u\n",
dwResult);
if (dwResult == ERROR_NOT_FOUND)
wprintf
(L" Error was the following profile was not found: %ws\n",
pProfileName);
// You can use FormatMessage to find out why the function failed
} else {
wprintf(L"Successfully deleted Profile Name: %ws\n",
pProfileName);
}
wprintf(L"\n");
}
}
if (pIfList != NULL) {
WlanFreeMemory(pIfList);
pIfList = NULL;
}
return dwRetVal;
}
Persyaratan
Persyaratan | Nilai |
---|---|
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 |