Funzione BCryptEnumContextFunctions (bcrypt.h)
La funzione BCryptEnumContextFunctions ottiene le funzioni di crittografia per un contesto nella tabella di configurazione specificata.
Sintassi
NTSTATUS BCryptEnumContextFunctions(
[in] ULONG dwTable,
[in] LPCWSTR pszContext,
[in] ULONG dwInterface,
[in, out] ULONG *pcbBuffer,
[in, out] PCRYPT_CONTEXT_FUNCTIONS *ppBuffer
);
Parametri
[in] dwTable
Identifica la tabella di configurazione da cui recuperare le funzioni di contesto. Questo può essere uno dei valori seguenti.
Valore | Significato |
---|---|
|
Recuperare le funzioni di contesto dalla tabella di configurazione del computer locale. |
|
Questo valore non è disponibile per l'uso. |
[in] pszContext
Puntatore a una stringa Unicode con terminazione null contenente l'identificatore del contesto per enumerare le funzioni per.
[in] dwInterface
Identifica l'interfaccia crittografica per recuperare le funzioni per. Questo può essere uno dei valori seguenti.
[in, out] pcbBuffer
L'indirizzo di una variabile ULONG che, nella voce, contiene le dimensioni, in byte, del buffer a cui punta ppBuffer. Se questa dimensione non è sufficiente per contenere il set di identificatori di contesto, questa funzione avrà esito negativo con STATUS_BUFFER_TOO_SMALL.
Dopo che questa funzione restituisce, questo valore contiene il numero di byte copiati nel buffer ppBuffer .
[in, out] ppBuffer
Indirizzo di un puntatore a una struttura di CRYPT_CONTEXT_FUNCTIONS che riceve il set di funzioni di contesto recuperate da questa funzione. Il valore indicato dal parametro pcbBuffer contiene le dimensioni di questo buffer.
Se il valore puntato da questo parametro è NULL, questa funzione allocherà la memoria necessaria. Questa memoria deve essere liberata quando non è più necessaria passando questo puntatore alla funzione BCryptFreeBuffer .
Se questo parametro è NULL, questa funzione inserisce le dimensioni necessarie, in byte, nella variabile a cui punta il parametro pcbBuffer e restituisce 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 sono limitati a, i seguenti.
Codice restituito | Descrizione |
---|---|
|
La funzione ha avuto esito positivo. |
|
Il parametro ppBuffer non è NULL e il valore a cui punta il parametro pcbBuffer non è sufficiente per contenere il set di contesti. |
|
Uno o più parametri non sono validi. |
|
Si è verificato un errore di allocazione della memoria. |
|
Non sono state trovate funzioni di contesto che corrispondono ai criteri specificati. |
Commenti
BCryptEnumContextFunctions può essere chiamato solo in modalità utente.
Esempio
Nell'esempio seguente viene illustrato come usare la funzione BCryptEnumContextFunctions per enumerare le funzioni di archiviazione chiave per tutti i contesti nella tabella di configurazione del computer locale.
#include <windows.h>
#include <stdio.h>
#include <Bcrypt.h>
#pragma comment(lib, "Bcrypt.lib")
#ifndef NT_SUCCESS
#define NT_SUCCESS(Status) ((NTSTATUS)(Status) >= 0)
#endif
NTSTATUS EnumContextFunctions()
{
NTSTATUS status;
ULONG uSize = 0;
PCRYPT_CONTEXTS pContexts = NULL;
// Get the contexts for the local machine.
// CNG will allocate the memory for us.
status = BCryptEnumContexts(CRYPT_LOCAL, &uSize, &pContexts);
if(NT_SUCCESS(status))
{
// Enumerate the context identifiers.
for(ULONG uContextIndex = 0;
uContextIndex < pContexts->cContexts;
uContextIndex++)
{
wprintf(L"Context functions for %s:\n",
pContexts->rgpszContexts[uContextIndex]);
// Get the functions for this context.
// CNG will allocate the memory for us.
PCRYPT_CONTEXT_FUNCTIONS pContextFunctions = NULL;
status = BCryptEnumContextFunctions(
CRYPT_LOCAL,
pContexts->rgpszContexts[uContextIndex],
NCRYPT_SCHANNEL_INTERFACE,
&uSize,
&pContextFunctions);
if(NT_SUCCESS(status))
{
// Enumerate the functions.
for(ULONG i = 0;
i < pContextFunctions->cFunctions;
i++)
{
wprintf(L"\t%s\n",
pContextFunctions->rgpszFunctions[i]);
}
// Free the context functions buffer.
BCryptFreeBuffer(pContextFunctions);
}
}
// Free the contexts buffer.
BCryptFreeBuffer(pContexts);
}
return status;
}
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 |