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 che contiene 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 della modalità utente.
CRYPT_KM
Recuperare i provider della modalità kernel.
CRYPT_MM
Recuperare sia provider in modalità utente che in modalità kernel.

[in] dwFlags

Set di flag che modificano il comportamento di questa funzione.

Può trattarsi di zero o di 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, nella voce, 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 richieste, 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 posizionerà nel valore a cui punta il parametro pcbBuffer , le dimensioni necessarie, in byte, di tutti i dati.

Se questo parametro è l'indirizzo di un puntatore 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 non NULL , 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, a titolo esemplificativo, 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 trovato alcun provider che soddisfi tutti i criteri specificati.

Commenti

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

Requisiti

Requisito Valore
Client minimo supportato Windows Vista [solo app desktop]
Server minimo supportato Windows Server 2008 [solo app desktop]
Piattaforma di destinazione Windows
Intestazione bcrypt.h
Libreria Bcrypt.lib
DLL Bcrypt.dll