Funzione NCryptEnumKeys (ncrypt.h)
La funzione NCryptEnumKeys ottiene i nomi delle chiavi archiviate dal provider.
Sintassi
SECURITY_STATUS NCryptEnumKeys(
[in] NCRYPT_PROV_HANDLE hProvider,
[in, optional] LPCWSTR pszScope,
[out] NCryptKeyName **ppKeyName,
[in, out] PVOID *ppEnumState,
[in] DWORD dwFlags
);
Parametri
[in] hProvider
Handle del provider di archiviazione delle chiavi per cui enumerare le chiavi. Questo handle viene ottenuto con la funzione NCryptOpenStorageProvider .
[in, optional] pszScope
Questo parametro non è attualmente utilizzato e deve essere NULL.
[out] ppKeyName
Indirizzo di un puntatore a una struttura NCryptKeyName che riceve il nome della chiave recuperata. Al termine dell'uso della memoria, liberarla chiamando la funzione NCryptFreeBuffer .
[in, out] ppEnumState
Indirizzo di un puntatore VOID che riceve le informazioni sullo stato di enumerazione utilizzate nelle chiamate successive a questa funzione. Queste informazioni hanno significato solo per il provider di archiviazione delle chiavi e sono opache per il chiamante. Il provider di archiviazione chiavi usa queste informazioni per determinare l'elemento successivo nell'enumerazione . Se la variabile a cui punta questo parametro contiene NULL, l'enumerazione viene avviata dall'inizio.
Quando questa memoria non è più necessaria, deve essere liberata passando questo puntatore alla funzione NCryptFreeBuffer .
[in] dwFlags
Flag che modificano il comportamento della funzione. Può essere zero o una combinazione di uno o più dei valori seguenti.
Valore restituito
Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.
I codici restituiti possibili includono, a titolo esemplificativo, quanto segue.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
Il parametro dwFlags contiene un valore non valido. |
|
Il parametro hProvider non è valido. |
|
Uno o più parametri non sono validi. |
|
Si è verificato un errore di allocazione della memoria. |
|
È stata raggiunta la fine dell'enumerazione. |
|
Il parametro dwFlags contiene il flag NCRYPT_SILENT_FLAG , ma la chiave enumerata richiede l'interazione dell'utente. |
Commenti
Questa funzione recupera un solo elemento ogni volta che viene chiamato. Lo stato dell'enumerazione viene archiviato nella variabile a cui punta il parametro ppEnumState , pertanto deve essere mantenuto tra le chiamate a questa funzione. Quando l'ultima chiave archiviata dal provider è stata recuperata, questa funzione restituirà NTE_NO_MORE_ITEMS la successiva chiamata. Per avviare l'enumerazione, impostare la variabile a cui punta il parametro ppEnumState su NULL, liberare la memoria a cui punta il parametro ppKeyName , se non è NULL e chiamare di nuovo questa funzione.
Un servizio non deve chiamare questa funzione dalla funzione StartService. Se un servizio chiama questa funzione dalla funzione StartService, può verificarsi un deadlock e il servizio potrebbe smettere di rispondere.
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Windows Vista [app desktop | App UWP] |
Server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
Piattaforma di destinazione | Windows |
Intestazione | ncrypt.h |
Libreria | Ncrypt.lib |
DLL | Ncrypt.dll |