Função WZCEnumInterfaces
[O WZCEnumInterfaces não tem mais suporte desde o Windows Vista e o Windows Server 2008. Em vez disso, use a função WlanEnumInterfaces . Para obter mais informações, consulte Sobre a API wi-fi nativa.]
A função WZCEnumInterfaces enumera todas as interfaces lan sem fio gerenciadas pelo serviço de Configuração Sem Fio Zero.
Sintaxe
DWORD WZCEnumInterfaces(
_In_ LPWSTR pSrvAddr,
_Out_ PINTFS_KEY_TABLE pIntfs
);
Parâmetros
-
pSrvAddr [in]
-
Um ponteiro para uma cadeia de caracteres que contém o nome do computador no qual executar essa função. Se esse parâmetro for NULL, o serviço de Configuração Sem Fio Zero será enumerado no computador local.
Se o parâmetro pSrvAddr especificado for um computador remoto, o computador remoto deverá dar suporte a chamadas RPC remotas.
-
pIntfs [out]
-
Um ponteiro para uma estrutura INTFS_KEY_TABLE que contém uma tabela de informações importantes para todas as interfaces.
Valor retornado
Se a função obtiver êxito, o valor retornado será ERROR_SUCCESS.
Se a função falhar, o valor retornado poderá ser um dos seguintes códigos de retorno.
Código de retorno | Descrição |
---|---|
|
Os blocos de controle de armazenamento foram destruídos. Esse erro será retornado se o serviço de Configuração Sem Fio Zero não tiver inicializado objetos internos. |
|
A interface é desconhecida. Esse erro será retornado se o serviço de Configuração Sem Fio Zero não for iniciado. |
|
Um ponteiro de referência nula foi passado para o stub. Esse erro será retornado se o parâmetro pIntfs for NULL. |
|
Não há memória suficiente disponível para processar essa solicitação e alocar memória para os resultados da consulta. |
|
Vários códigos de erro. |
Comentários
O membro dwNumIntfs da estrutura INTFS_KEY_TABLE apontada por pIntf deve ser definido como 0 antes de chamar a função WZCEnumInterfaces . Além disso, o membro pIntfs deve ser definido como NULL.
Para chamadas subsequentes para outras funções de Configuração Sem Fio Zero, um aplicativo deve identificar a interface em que está operando fornecendo informações de chave relevantes retornadas pela função WZCEnumInterfaces .
Se WZCEnumInterfaces retornar ERROR_SUCCESS, o chamador deverá chamar LocalFree para liberar os buffers internos alocados para os dados retornados depois que essas informações não forem mais necessárias.
Observação
O arquivo de cabeçalho Wzcsapi.h e o arquivo de biblioteca de importação Wzcsapi.lib não estão disponíveis no SDK do Windows.
Exemplos
O exemplo a seguir enumera as interfaces LAN sem fio no computador local gerenciado pelo serviço de Configuração Sem Fio Zero e imprime o valor do GUID da interface para cada interface.
Observação
Este exemplo falhará no Windows Vista e posterior.
#ifndef UNICODE
#define UNICODE
#endif
#include <windows.h>
#include <objbase.h>
#include <wtypes.h>
#include <stdio.h>
#include <stdlib.h>
// Wzcsapi.h and Wsczapi.lib were never shipped
// So we need to LOadlibrary and call the WZCEnumInterfaces function
// in Wzcsapi.dll in the
typedef struct
{
LPWSTR wszGuid;
} INTF_KEY_ENTRY, *PINTF_KEY_ENTRY;
typedef struct
{
DWORD dwNumIntfs;
PINTF_KEY_ENTRY pIntfs;
} INTFS_KEY_TABLE, *PINTFS_KEY_TABLE;
DWORD WZCEnumInterfaces(LPWSTR pSrvAddr, PINTFS_KEY_TABLE pIntfs);
//Define the function prototype
typedef DWORD (CALLBACK* WZCEnumInterfacesType)(LPWSTR, PINTFS_KEY_TABLE);
int wmain()
{
// Declare and initialize variables.
DWORD dwResult = 0;
// int iRet = 0;
// WCHAR GuidString[40] = {0};
int i;
/* variables used for WZCEnumInterfaces */
PINTFS_KEY_TABLE pIfList;
PINTF_KEY_ENTRY pIfInfo;
BOOL freeResult = FALSE;
BOOL runTimeLinkSuccess = FALSE;
HINSTANCE dllHandle = NULL;
WZCEnumInterfacesType WZCEnumInterfacesPtr = NULL;
// wprintf(L"Sample to test WZCEnumInterface\n");
//Load the dll and keep the handle to it
dllHandle = LoadLibrary( (LPCWSTR) L"wzcsapi.dll");
// If the handle is valid, try to get the function address.
if (dllHandle == NULL) {
dwResult = GetLastError();
wprintf(L"LoadLibrary of wzcsapi.dll failed with error: %d\n", dwResult);
if (dwResult == ERROR_MOD_NOT_FOUND)
wprintf(L"Error: The specified module could not be found\n");
return 1;
}
else
{
//Get pointer to our function using GetProcAddress:
WZCEnumInterfacesPtr = (WZCEnumInterfacesType) GetProcAddress(dllHandle,
"WZCEnumInterfaces");
if (WZCEnumInterfacesPtr != NULL)
runTimeLinkSuccess = TRUE;
else {
dwResult = GetLastError();
wprintf(L"GetProcAddress of WZCEnumInterfaces failed with error: %d\n", dwResult);
return 1;
}
// The function address is valid, allocate some memory for pIflist
pIfList = (PINTFS_KEY_TABLE) LocalAlloc(LMEM_ZEROINIT,4096);
if (pIfList == NULL) {
wprintf(L"Unable to allocate memory to store INTFS_KEY_TABLE\n");
freeResult = FreeLibrary(dllHandle);
return 1;
}
// If the function address is valid, call the function.
if (runTimeLinkSuccess)
{
dwResult = WZCEnumInterfacesPtr(NULL, pIfList);
if (dwResult != ERROR_SUCCESS) {
wprintf(L"WZCEnumInterfaces failed with error: %u\n", dwResult);
// FormatMessage can be used to find out why the function failed
//Free the library:
freeResult = FreeLibrary(dllHandle);
return 1;
}
else {
wprintf(L"Num Entries: %lu\n", pIfList->dwNumIntfs);
for (i = 0; i < (int) pIfList->dwNumIntfs; i++) {
pIfInfo = &pIfList->pIntfs[i];
if (pIfInfo->wszGuid == NULL)
wprintf(L" InterfaceGUID[%d]: NULL\n",i);
else
wprintf(L" InterfaceGUID[%d]: %ws\n",i, pIfInfo->wszGuid);
}
}
wprintf(L"\n");
}
freeResult = FreeLibrary(dllHandle);
}
if (pIfList != NULL) {
LocalFree(pIfList);
pIfList = NULL;
}
return 0;
}
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Windows XP com SP2 [somente aplicativos da área de trabalho] |
Servidor mínimo com suporte |
Windows Server 2003 [somente aplicativos da área de trabalho] |
Fim do suporte ao cliente |
Windows XP com SP3 |
Fim do suporte ao servidor |
Windows Server 2003 |
Cabeçalho |
|
Biblioteca |
|
DLL |
|
Confira também