Fonction WlanDeleteProfile (wlanapi.h)
La fonction WlanDeleteProfile supprime un profil sans fil pour une interface sans fil sur l’ordinateur local.
Syntaxe
DWORD WlanDeleteProfile(
[in] HANDLE hClientHandle,
[in] const GUID *pInterfaceGuid,
[in] LPCWSTR strProfileName,
PVOID pReserved
);
Paramètres
[in] hClientHandle
Handle de session du client, obtenu par un appel précédent à la fonction WlanOpenHandle .
[in] pInterfaceGuid
GUID de l’interface à partir de laquelle supprimer le profil.
[in] strProfileName
Nom du profil à supprimer. Les noms de profil respectent la casse. Cette chaîne doit être terminée par null.
Windows XP avec SP3 et API LAN sans fil pour Windows XP avec SP2 : Le nom fourni doit correspondre au nom de profil dérivé automatiquement du SSID du réseau. Pour un profil réseau d’infrastructure, le SSID doit être fourni pour le nom du profil. Pour un profil réseau ad hoc, le nom fourni doit être le SSID du réseau ad hoc suivi de -adhoc
.
pReserved
Réservé pour un usage futur. Doit être défini sur NULL.
Valeur retournée
Si la fonction réussit, la valeur de retour est ERROR_SUCCESS.
Si la fonction échoue, la valeur de retour peut être l’un des codes de retour suivants.
Code de retour | Description |
---|---|
|
Le paramètre hClientHandle est NULL ou non valide, le paramètre pInterfaceGuid est NULL, le paramètre strProfileName est NULL ou pReserved n’est pas NULL. |
|
Le handle spécifié dans le paramètre hClientHandle est introuvable dans la table de handle. |
|
Le profil sans fil spécifié par strProfileName est introuvable dans le magasin de profils. |
|
L’appelant ne dispose pas des autorisations suffisantes pour supprimer le profil. |
|
Différents codes d’erreur. |
Remarques
La fonction WlanDeleteProfile supprime un profil sans fil pour une interface sans fil sur l’ordinateur local.
Toutes les fonctions LAN sans fil nécessitent un GUID d’interface pour l’interface sans fil lors de l’exécution d’opérations de profil. Lorsqu’une interface sans fil est supprimée, son état est effacé du service LAN sans fil (WLANSVC) et aucune opération de profil n’est possible.
La fonction WlanDeleteProfile peut échouer avec ERROR_INVALID_PARAMETER si l’interface sans fil spécifiée dans le paramètre pInterfaceGuid pour le profil LAN sans fil a été supprimée du système (un adaptateur sans fil USB qui a été supprimé, par exemple).
Pour supprimer un profil sur la ligne de commande, utilisez la commande netsh wlan delete profile . Pour plus d’informations, consultez Commandes Netsh pour le réseau local sans fil (wlan).
Exemples
L’exemple suivant énumère les interfaces LAN sans fil sur l’ordinateur local et tente de supprimer un profil sans fil spécifique sur chaque interface LAN sans fil.
#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;
}
Configuration requise
Condition requise | Valeur |
---|---|
Client minimal pris en charge | Windows Vista, Windows XP avec SP3 [applications de bureau uniquement] |
Serveur minimal pris en charge | Windows Server 2008 [applications de bureau uniquement] |
Plateforme cible | Windows |
En-tête | wlanapi.h (incluez Wlanapi.h) |
Bibliothèque | Wlanapi.lib |
DLL | Wlanapi.dll |
Composant redistribuable | API LAN sans fil pour Windows XP avec SP2 |