Condividi tramite


Funzione BCryptResolveProviders (bcrypt.h)

La funzione BCryptResolveProviders ottiene una raccolta di tutti i provider che soddisfano i criteri specificati.

Sintassi

NTSTATUS BCryptResolveProviders(
  [in, optional] LPCWSTR              pszContext,
  [in, optional] ULONG                dwInterface,
  [in, optional] LPCWSTR              pszFunction,
  [in, optional] LPCWSTR              pszProvider,
  [in]           ULONG                dwMode,
  [in]           ULONG                dwFlags,
  [in, out]      ULONG                *pcbBuffer,
  [in, out]      PCRYPT_PROVIDER_REFS *ppBuffer
);

Parametri

[in, optional] pszContext

Puntatore a una stringa Unicode con terminazione Null contenente l'identificatore del contesto per cui ottenere i provider. Se questa proprietà è impostata su NULL o su una stringa vuota, verrà utilizzato il contesto predefinito.

[in, optional] dwInterface

Identificatore di un'interfaccia che il provider deve supportare. Deve essere uno degli identificatori di interfaccia CNG . Se il parametro pszFunction non è NULL o una stringa vuota, è possibile impostare dwInterface su zero per forzare la funzione a dedurre l'interfaccia.

[in, optional] pszFunction

Puntatore a una stringa Unicode con terminazione Null contenente l'algoritmo o l'identificatore di funzione che il provider deve supportare. Può trattarsi di uno degli identificatori di algoritmo CNG standard o dell'identificatore per un altro algoritmo registrato. Se dwInterface è impostato su un valore diverso da zero, pszFunction può essere NULL per includere tutti gli algoritmi e le funzioni.

[in, optional] pszProvider

Puntatore a una stringa Unicode con terminazione Null contenente il nome del provider da recuperare. Se questo parametro è NULL, verranno inclusi tutti i provider.

Questo parametro consente di specificare un provider specifico da recuperare nel caso in cui più provider soddisfino gli altri criteri.

[in] dwMode

Specifica il tipo di provider da recuperare. Può trattarsi di uno dei valori seguenti.

Valore Significato
CRYPT_UM
Recuperare i provider in modalità utente.
CRYPT_KM
Recuperare i provider in modalità kernel.
CRYPT_MM
Recuperare sia i provider in modalità utente che in modalità kernel.

[in] dwFlags

Set di flag che modificano il comportamento di questa funzione.

Può essere uno zero o una combinazione di uno o più dei valori seguenti.

Valore Significato
CRYPT_ALL_FUNCTIONS
1
Questa funzione recupererà tutte le funzioni supportate da ogni provider che soddisfa i criteri specificati. Se questo flag non viene specificato, questa funzione recupererà solo la prima funzione del provider o dei provider che soddisfano i criteri specificati.
CRYPT_ALL_PROVIDERS
2
Questa funzione recupererà tutti i provider che soddisfano i criteri specificati. Se questo flag non viene specificato, questa funzione recupererà solo il primo provider trovato che soddisfa i criteri specificati.

[in, out] pcbBuffer

Puntatore a un valore DWORD che, in ingresso, contiene le dimensioni, in byte, del buffer a cui punta il parametro ppBuffer. All'uscita, questo valore riceve il numero di byte copiati nel buffer o le dimensioni necessarie, in byte, del buffer.

[in, out] ppBuffer

Indirizzo di un puntatore CRYPT_PROVIDER_REFS che riceve la raccolta di provider che soddisfano i criteri specificati.

Se questo parametro è NULL, questa funzione restituirà STATUS_SUCCESS e inserisce nel valore a cui punta il parametro pcbBuffer, le dimensioni richieste, in byte, di tutti i dati.

Se questo parametro è l'indirizzo di un puntatore NULL NULL, questa funzione allocherà la memoria necessaria, riempirà la memoria con le informazioni sui provider e inserisce il puntatore a questa memoria in questo parametro. Al termine dell'uso di questa memoria, liberarlo passando questo puntatore alla funzione BCryptFreeBuffer.

Se questo parametro è l'indirizzo di un puntatore NULL non, questa funzione copierà le informazioni del provider in questo buffer. Il parametro pcbBuffer deve contenere le dimensioni, in byte, dell'intero buffer. Se il buffer non è sufficientemente grande da contenere tutte le informazioni sul provider, questa funzione restituirà STATUS_BUFFER_TOO_SMALL.

Valore restituito

Restituisce un codice di stato che indica l'esito positivo o negativo della funzione.

I codici restituiti possibili includono, ma non solo, quanto segue.

Codice restituito Descrizione
STATUS_SUCCESS
La funzione ha avuto esito positivo.
STATUS_BUFFER_TOO_SMALL
Le dimensioni specificate dal parametro pcbBuffer non sono sufficienti per contenere tutti i dati.
STATUS_INVALID_PARAMETER
Uno o più parametri non sono validi.
STATUS_NOT_FOUND
Non è stato possibile trovare alcun provider che soddisfi tutti i criteri specificati.

Osservazioni

BCryptResolveProviders può essere chiamato dalla modalità utente o dal kernel. I chiamanti in modalità kernel devono essere in esecuzione in PASSIVE_LEVELIRQL.

Fabbisogno

Requisito Valore
client minimo supportato Windows Vista [solo app desktop]
server minimo supportato Windows Server 2008 [solo app desktop]
piattaforma di destinazione Finestre
intestazione bcrypt.h
libreria Bcrypt.lib
dll Bcrypt.dll