WZCEnumInterfaces fonction)

[WZCEnumInterfaces n’est plus pris en charge à partir de Windows Vista et Windows Server 2008. Utilisez plutôt la fonction WlanEnumInterfaces . Pour plus d’informations, consultez à propos de l’API WiFi Native.]

La fonction WZCEnumInterfaces énumère toutes les interfaces de réseau local sans fil gérées par le service de configuration sans fil Zero.

Syntaxe

DWORD WZCEnumInterfaces(
  _In_  LPWSTR           pSrvAddr,
  _Out_ PINTFS_KEY_TABLE pIntfs
);

Paramètres

pSrvAddr [ dans]

Pointeur vers une chaîne contenant le nom de l’ordinateur sur lequel exécuter cette fonction. Si ce paramètre a la valeur null, le service de configuration sans fil Zero est énuméré sur l’ordinateur local.

Si le paramètre pSrvAddr spécifié est un ordinateur distant, l’ordinateur distant doit prendre en charge les appels RPC distants.

pIntfs [ à]

Pointeur vers une structure de _ _ table de clé INTFS qui contient une table d’informations de clé pour toutes les interfaces.

Valeur de retour

Si la fonction réussit, la valeur de retour est une erreur de _ réussite.

Si la fonction échoue, la valeur de retour peut être l’un des codes de retour suivants.

Code de retour Description
ERREUR de la _ _ Corbeille
Les blocs de contrôle de stockage ont été détruits. Cette erreur est retournée si le service de configuration sans fil Zero n’a pas initialisé d’objets internes.
RPC _ S _ inconnu _ si
L’interface est inconnue.
Cette erreur est retournée si le service de configuration sans fil Zero n’est pas démarré.
_ _ _ pointeur Ref null RPC _ X
Un pointeur de référence null a été passé au stub.
Cette erreur est retournée si le paramètre pIntfs a la valeur null.
ERREUR _ de _ mémoire insuffisante _
Mémoire disponible insuffisante pour traiter cette demande et allouer de la mémoire pour les résultats de la requête.
_état RPC
Divers codes d’erreur.

Notes

Le membre dwNumIntfs de la structure de _ _ table de clé INTFS vers laquelle pointe pIntf doit avoir la valeur 0 avant d’appeler la fonction WZCEnumInterfaces . En outre, le membre pIntfs doit avoir la valeur null.

Pour les appels suivants à d’autres fonctions de configuration sans fil sans fil, une application doit identifier l’interface sur laquelle elle fonctionne en fournissant les informations de clé pertinentes retournées par la fonction WZCEnumInterfaces .

Si le WZCEnumInterfaces retourne _ une erreur, l’appelant doit appeler LocalFree pour libérer les mémoires tampons internes allouées pour les données retournées une fois que ces informations ne sont plus nécessaires.

Notes

le fichier d’en-tête Wzcsapi. h et le fichier de bibliothèque d’importation Wzcsapi. lib ne sont pas disponibles dans le SDK Windows.

Exemples

L’exemple suivant énumère les interfaces de réseau local sans fil sur l’ordinateur local géré par le service de configuration sans fil Zero et imprime la valeur du GUID d’interface pour chaque interface.

Notes

cet exemple échouera sur Windows Vista et versions ultérieures.

#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;
}

Spécifications

Condition requise Valeur
Client minimal pris en charge
Windows XP avec les [ applications de bureau SP2 uniquement]
Serveur minimal pris en charge
Windows Serveur 2003 [ applications de bureau uniquement]
Fin de la prise en charge des clients
Windows XP avec SP3
Fin de la prise en charge des serveurs
Windows Server 2003
En-tête
Wzcsapi. h
Bibliothèque
Wzcsapi. lib
DLL
Wzcsapi.dll

Voir aussi

_table de clé INTFS _

_entrée de clé INTF _

WZCEapolGetInterfaceParams

WZCQueryInterface

WZCRefreshInterface