ICEnroll::enumProviders-Methode (xenroll.h)
[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 |