Función WlanDeleteProfile (wlanapi.h)
La función WlanDeleteProfile elimina un perfil inalámbrico para una interfaz inalámbrica en el equipo local.
Sintaxis
DWORD WlanDeleteProfile(
[in] HANDLE hClientHandle,
[in] const GUID *pInterfaceGuid,
[in] LPCWSTR strProfileName,
PVOID pReserved
);
Parámetros
[in] hClientHandle
Identificador de sesión del cliente, obtenido por una llamada anterior a la función WlanOpenHandle .
[in] pInterfaceGuid
GUID de la interfaz desde la que se va a eliminar el perfil.
[in] strProfileName
Nombre del perfil que se va a eliminar. Los nombres de perfil distinguen mayúsculas de minúsculas. Esta cadena debe terminar en NULL.
Windows XP con SP3 y LAN inalámbrica API para Windows XP con SP2: El nombre proporcionado debe coincidir con el nombre del perfil derivado automáticamente del SSID de la red. Para un perfil de red de infraestructura, se debe proporcionar el SSID para el nombre del perfil. Para un perfil de red ad hoc, el nombre proporcionado debe ser el SSID de la red ad hoc seguido de -adhoc
.
pReserved
Reservado para uso futuro. Debe establecerse en NULL.
Valor devuelto
Si la función se ejecuta correctamente, el valor devuelto es ERROR_SUCCESS.
Si se produce un error en la función, el valor devuelto puede ser uno de los siguientes códigos de retorno.
Código devuelto | Descripción |
---|---|
|
El parámetro hClientHandle es NULL o no es válido, el parámetro pInterfaceGuid es NULL, el parámetro strProfileName es NULL o pReserved no es NULL. |
|
El identificador especificado en el parámetro hClientHandle no se encontró en la tabla handle. |
|
El perfil inalámbrico especificado por strProfileName no se encontró en el almacén de perfiles. |
|
El autor de la llamada no tiene permisos suficientes para eliminar el perfil. |
|
Varios códigos de error. |
Comentarios
La función WlanDeleteProfile elimina un perfil inalámbrico para una interfaz inalámbrica en el equipo local.
Todas las funciones LAN inalámbricas requieren un GUID de interfaz para la interfaz inalámbrica al realizar operaciones de perfil. Cuando se quita una interfaz inalámbrica, su estado se borra del servicio LAN inalámbrico (WLANSVC) y no se pueden realizar operaciones de perfil.
La función WlanDeleteProfile puede producir un error con ERROR_INVALID_PARAMETER si la interfaz inalámbrica especificada en el parámetro pInterfaceGuid para el perfil laN inalámbrico se ha quitado del sistema (un adaptador inalámbrico USB que se ha quitado, por ejemplo).
Para eliminar un perfil en la línea de comandos, use el comando netsh wlan delete profile . Para obtener más información, consulte Netsh Commands for Wireless Local Area Network (wlan).
Ejemplos
En el ejemplo siguiente se enumeran las interfaces de LAN inalámbricas en el equipo local e intenta eliminar un perfil inalámbrico específico en cada interfaz LAN inalámbrica.
#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;
}
Requisitos
Requisito | Value |
---|---|
Cliente mínimo compatible | Windows Vista, Windows XP con SP3 [solo aplicaciones de escritorio] |
Servidor mínimo compatible | Windows Server 2008 [solo aplicaciones de escritorio] |
Plataforma de destino | Windows |
Encabezado | wlanapi.h (incluya Wlanapi.h) |
Library | Wlanapi.lib |
Archivo DLL | Wlanapi.dll |
Redistribuible | API de LAN inalámbrica para Windows XP con SP2 |