Freigeben über


ICEnroll3::EnumAlgs-Methode (xenroll.h)

[Diese Methode ist ab Windows Server 2008 und Windows Vista nicht mehr verfügbar.]

Die EnumAlgs-Methode ruft die IDs von kryptografischen Algorithmen in einer bestimmten Algorithmusklasse ab, die vom aktuellen Kryptografiedienstanbieter (CSP) unterstützt werden. Diese Methode wurde zuerst in der ICEnroll3-Schnittstelle definiert.

Syntax

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

Parameter

[in] dwIndex

Gibt die Ordnungsposition des Algorithmus an, dessen ID abgerufen wird. Geben Sie null für den ersten Algorithmus an.

[in] algClass

Eine kryptografische Algorithmusklasse. Die von dieser Methode zurückgegebenen IDs sind in der angegebenen Klasse enthalten. Geben Sie eine der folgenden Optionen an:

  • ALG_CLASS_HASH
  • ALG_CLASS_KEY_EXCHANGE
  • ALG_CLASS_MSG_ENCRYPT
  • ALG_CLASS_DATA_ENCRYPT
  • ALG_CLASS_SIGNATURE

[out] pdwAlgID

Ein Zeiger auf eine Variable zum Empfangen einer kryptografischen Algorithmus-ID, die vom aktuellen CSP unterstützt wird.

Rückgabewert

C++

Der Rückgabewert ist ein HRESULT. Der Wert S_OK gibt den Erfolg an. Wenn keine weiteren Algorithmen aufgelistet werden müssen, wird der Wert ERROR_NO_MORE_ITEMS zurückgegeben.

VB

Eine kryptografische Algorithmus-ID, die vom aktuellen CSP unterstützt wird. Wenn keine weiteren Algorithmen aufgelistet werden müssen, wird der Wert ERROR_NO_MORE_ITEMS zurückgegeben.

Hinweise

Informationen zu Algorithmus-ID und Klassenkonstanten, die von dieser Methode verwendet werden, finden Sie unter Wincrypt.h.

Beispiele

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


Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Windows XP [nur Desktop-Apps]
Unterstützte Mindestversion (Server) Windows Server 2003 [nur Desktop-Apps]
Zielplattform Windows
Kopfzeile xenroll.h
Bibliothek Uuid.lib
DLL Xenroll.dll

Weitere Informationen

CEnroll

ICEnroll3

ICEnroll4