Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
[Diese Methode steht ab Windows Server 2008 und Windows Vista nicht mehr zur Verfügung.]
Die enumProviders-Methode ruft die Namen der verfügbaren Kryptografiedienstanbieter (CSPs) ab, die durch die ProviderType-Eigenschaft angegeben sind. Diese Methode wurde zuerst in der ICEnroll-Schnittstelle definiert.
Syntax
HRESULT enumProviders(
[in] LONG dwIndex,
[in] LONG dwFlags,
[out] BSTR *pbstrProvName
);
Parameter
[in] dwIndex
Gibt die Ordnungsposition des CSP an, dessen Name abgerufen wird. Geben Sie null für den ersten CSP an.
[in] dwFlags
Gibt Flags an, die an die Funktion CryptEnumProviders übergeben werden. Dieser Parameter wird derzeit nicht verwendet. geben Sie null an.
[out] pbstrProvName
Ein Zeiger auf eine BSTR-Variable , die den Namen eines CSP mit dem angegebenen Eigenschaftstyp empfängt. Wenn Sie die Verwendung des BSTR abgeschlossen haben, geben Sie ihn frei, indem Sie die SysFreeString-Funktion aufrufen.
Rückgabewert
C++
Der Rückgabewert ist ein HRESULT. Ein Wert von S_OK gibt den Erfolg an. Der Wert ERROR_NO_MORE_ITEMS wird zurückgegeben, wenn keine weiteren CSPs mit dem von der ProviderType-Eigenschaft angegebenen Eigenschaftstyp vorhanden sind.VB
Der Rückgabewert ist eine String-Variable , die den Namen eines CSP enthält. Eine Ausnahme wird ausgelöst, wenn ein Fehler auftritt oder wenn keine weiteren Elemente vorhanden sind.Hinweise
Wenn der ProviderType-Eigenschaftswert nicht festgelegt wurde, wird der Standardwert (in der Regel PROV_RSA_FULL) von ProviderType verwendet, wie er in der Registrierung festgelegt ist.
Die enumProviders-Methode ruft die CryptEnumProviders-Funktion auf.
Beispiele
BSTR bstrProvName = NULL;
DWORD nProv;
int j;
HRESULT hr;
// array of CSP provider types (see Wincrypt.h)
DWORD nProvType[] = { PROV_RSA_FULL,
PROV_RSA_SIG,
// list shortened for brevity
//...
PROV_STT_ISS };
// Loop, for each Prov Type.
for (j = 0; j < (sizeof(nProvType)/sizeof(DWORD)); j++)
{
nProv = 0;
// pEnroll is previously instantiated ICEnroll interface pointer
hr = pEnroll->put_ProviderType( nProvType[j] );
if ( FAILED(hr))
{
printf("Failed put_ProviderType - %x\n", hr);
goto error;
}
// Enumerate the CSPs of this type.
while ( S_OK == ( hr = pEnroll->enumProviders(nProv,
0,
&bstrProvName)))
{
printf("Provider %ws (type %d )\n", bstrProvName,
nProvType[j] );
nProv++;
if ( bstrProvName )
{
SysFreeString( bstrProvName );
bstrProvName = NULL;
}
}
// Print message if provider type does not have any CSPs.
if ( 0 == nProv )
printf("There were no CSPs of type %d\n", dwType );
}
error:
// Clean up resources, and so on.
if ( bstrProvName )
SysFreeString( bstrProvName );
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 |