Bagikan melalui


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
ERROR_INVALID_PARAMETER
Parameter hClientHandleadalah NULL atau tidak valid, parameter pInterfaceGuid adalah NULL, parameter strProfileName adalah NULL, atau pReserved bukan NULL.
ERROR_INVALID_HANDLE
Handel yang ditentukan dalam parameter hClientHandle tidak ditemukan dalam tabel handel.
ERROR_NOT_FOUND
Profil nirkabel yang ditentukan oleh strProfileName tidak ditemukan di penyimpanan profil.
ERROR_ACCESS_DENIED
Pemanggil tidak memiliki izin yang memadai untuk menghapus profil.
RPC_STATUS
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.

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 _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

Lihat juga

Izin API Wifi Asli

WlanGetProfile

WlanGetProfileList

WlanRenameProfile

WlanSetProfile