Condividi tramite


Metodo ICEnroll3::EnumAlgs (xenroll.h)

[Questo metodo non è più disponibile per l'uso a partire da Windows Server 2008 e Windows Vista.]

Il metodo EnumAlgs recupera gli ID degli algoritmi crittografici in una determinata classe di algoritmo supportata dal provider di servizi di crittografia corrente. Questo metodo è stato definito per la prima volta nell'interfaccia ICEnroll3 .

Sintassi

HRESULT EnumAlgs(
  [in]  LONG dwIndex,
  [in]  LONG algClass,
  [out] LONG *pdwAlgID
);

Parametri

[in] dwIndex

Specifica la posizione ordinale dell'algoritmo il cui ID verrà recuperato. Specificare zero per il primo algoritmo.

[in] algClass

Classe di algoritmo crittografico. Gli ID restituiti da questo metodo saranno nella classe specificata. Specificare uno dei valori seguenti:

  • ALG_CLASS_HASH
  • ALG_CLASS_KEY_EXCHANGE
  • ALG_CLASS_MSG_ENCRYPT
  • ALG_CLASS_DATA_ENCRYPT
  • ALG_CLASS_SIGNATURE

[out] pdwAlgID

Puntatore a una variabile per ricevere un ID algoritmo crittografico supportato dal CSP corrente.

Valore restituito

C++

Il valore restituito è un HRESULT. Un valore di S_OK indica l'esito positivo. Quando non sono presenti più algoritmi da enumerare, viene restituito il valore ERROR_NO_MORE_ITEMS.

VB

ID dell'algoritmo crittografico supportato dal CSP corrente. Quando non sono presenti più algoritmi da enumerare, viene restituito il valore ERROR_NO_MORE_ITEMS.

Commenti

Per le costanti dell'ID dell'algoritmo e della classe usate da questo metodo, vedere Wincrypt.h.

Esempio

#include <windows.h>
#include <stdio.h>
#include <Xenroll.h>

DWORD     dwAlgID;
DWORD     dwIndex;

BSTR      bstrAlgName = NULL;

HRESULT   hr, hr2;

// Loop through the AlgIDs.
dwIndex = 0;
while ( TRUE )
{
    // Enumerate the alg IDs for a specific class.
    hr = pEnroll->EnumAlgs(dwIndex, ALG_CLASS_SIGNATURE, &dwAlgID);
    if ( S_OK != hr )
    {
       break;
    }

    // Do something with the AlgID.
    // For example, retrieve the corresponding name.
    hr2 = pEnroll->GetAlgName( dwAlgID, &bstrAlgName);
    if ( FAILED( hr2 ) )    
        printf("Failed GetAlgName [%x]\n", hr);
    else
        printf("AlgID: %d Name: %S\n", dwAlgID, bstrAlgName );

    // Reuse the BSTR variable in next iteration.
    if ( NULL != bstrAlgName )
    {
        SysFreeString( bstrAlgName );
        bstrAlgName = NULL;
    }

    // Increment the index.
    dwIndex++;
}


Requisiti

Requisito Valore
Client minimo supportato Windows XP [solo app desktop]
Server minimo supportato Windows Server 2003 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione xenroll.h
Libreria Uuid.lib
DLL Xenroll.dll

Vedi anche

CEnroll

ICEnroll3

ICEnroll4