WlanDeleteProfile-Funktion (wlanapi.h)

Die WlanDeleteProfile-Funktion löscht ein Drahtlosprofil für eine Drahtlose Schnittstelle auf dem lokalen Computer.

Syntax

DWORD WlanDeleteProfile(
  [in] HANDLE     hClientHandle,
  [in] const GUID *pInterfaceGuid,
  [in] LPCWSTR    strProfileName,
       PVOID      pReserved
);

Parameter

[in] hClientHandle

Das Sitzungshandle des Clients, das durch einen vorherigen Aufruf der WlanOpenHandle-Funktion abgerufen wurde.

[in] pInterfaceGuid

Die GUID der Schnittstelle, über die das Profil gelöscht werden soll.

[in] strProfileName

Der Name des zu löschenden Profils. Bei Profilnamen wird die Groß-/Kleinschreibung beachtet. Diese Zeichenfolge muss NULL-beendet sein.

Windows XP mit SP3 und WLAN-API für Windows XP mit SP2: Der angegebene Name muss mit dem Profilnamen übereinstimmen, der automatisch von der SSID des Netzwerks abgeleitet wird. Für ein Infrastrukturnetzwerkprofil muss die SSID für den Profilnamen angegeben werden. Für ein Ad-hoc-Netzwerkprofil muss der angegebene Name die SSID des Ad-hoc-Netzwerks sein, gefolgt von -adhoc.

pReserved

Für die zukünftige Verwendung reserviert. Muss auf NULL festgelegt werden.

Rückgabewert

Wenn die Funktion erfolgreich ist, wird der Rückgabewert ERROR_SUCCESS.

Wenn die Funktion fehlschlägt, kann der Rückgabewert einer der folgenden Rückgabecodes sein.

Rückgabecode Beschreibung
ERROR_INVALID_PARAMETER
Der hClientHandle-Parameter ist NULL oder ungültig, der pInterfaceGuid-Parameter ist NULL, der strProfileName-Parameterist NULL, oder pReserved ist nicht NULL.
ERROR_INVALID_HANDLE
Das im hClientHandle-Parameter angegebene Handle wurde in der Handle-Tabelle nicht gefunden.
ERROR_NOT_FOUND
Das von strProfileName angegebene Drahtlosprofil wurde im Profilspeicher nicht gefunden.
ERROR_ACCESS_DENIED
Der Aufrufer verfügt nicht über ausreichende Berechtigungen zum Löschen des Profils.
RPC_STATUS
Verschiedene Fehlercodes.

Hinweise

Die WlanDeleteProfile-Funktion löscht ein Drahtlosprofil für eine Drahtlose Schnittstelle auf dem lokalen Computer.

Alle Drahtlos-LAN-Funktionen erfordern eine Schnittstellen-GUID für die Drahtlose Schnittstelle, wenn Profilvorgänge ausgeführt werden. Wenn eine drahtlose Schnittstelle entfernt wird, wird ihr Zustand aus WLANSVC (Wireless LAN Service) gelöscht, und es sind keine Profilvorgänge möglich.

Die WlanDeleteProfile-Funktion kann mit ERROR_INVALID_PARAMETER fehlschlagen, wenn die im pInterfaceGuid-Parameter für das WLAN-Profil angegebene Funkschnittstelle aus dem System entfernt wurde (z. B. ein USB-Drahtlosadapter, der entfernt wurde).

Verwenden Sie den Befehl netsh wlan delete profile , um ein Profil an der Befehlszeile zu löschen. Weitere Informationen finden Sie unter Netsh Commands for Wireless Local Area Network (WLAN).

Beispiele

Im folgenden Beispiel werden die DRAHTLOS-LAN-Schnittstellen auf dem lokalen Computer aufgelistet und versucht, ein bestimmtes Drahtlosprofil auf jeder WLAN-Schnittstelle zu löschen.

Hinweis Dieses Beispiel kann nicht unter Windows Server 2008 und Windows Server 2008 R2 geladen werden, wenn der WLAN-Dienst nicht installiert und gestartet ist.
 
#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;
}


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows Vista, Windows XP mit SP3 [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2008 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile wlanapi.h (einschließlich Wlanapi.h)
Bibliothek Wlanapi.lib
DLL Wlanapi.dll
Verteilbare Komponente Wlan-API für Windows XP mit SP2

Weitere Informationen

Berechtigungen der nativen WLAN-API

WlanGetProfile

WlanGetProfileList

WlanRenameProfile

WlanSetProfile