Funzione BCryptDuplicateKey (bcrypt.h)
La funzione BCryptDuplicateKey
Sintassi
NTSTATUS BCryptDuplicateKey(
[in] BCRYPT_KEY_HANDLE hKey,
[out] BCRYPT_KEY_HANDLE *phNewKey,
[out] PUCHAR pbKeyObject,
[in] ULONG cbKeyObject,
[in] ULONG dwFlags
);
Parametri
[in] hKey
Handle della chiave da duplicare. Deve trattarsi di un handle per una chiave simmetrica.
[out] phNewKey
Puntatore a una variabile BCRYPT_KEY_HANDLE che riceve l'handle della chiave duplicata. Questo handle viene usato nelle funzioni successive che richiedono una chiave, ad esempio BCryptEncrypt. Questo handle deve essere rilasciato quando non è più necessario passandolo alla funzione BCryptDestroyKey
[out] pbKeyObject
Puntatore a un buffer che riceve l'oggetto chiave duplicato. Il parametro cbKeyObject
Questa memoria può essere liberata solo dopo che il phNewKey handle della chiave viene eliminato definitivamente.
[in] cbKeyObject
Dimensioni, in byte, del buffer pbKeyObject
[in] dwFlags
Set di flag che modificano il comportamento di questa funzione. Non sono attualmente definiti flag, quindi questo parametro deve essere zero.
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 |
---|---|
|
La funzione ha avuto esito positivo. |
|
Le dimensioni dell'oggetto chiave specificato dal parametro cbKeyObject non sono sufficienti per contenere l'oggetto chiave. |
|
L'handle della chiave nel parametro hKey |
|
Uno o più parametri non sono validi. |
Osservazioni
A seconda delle modalità del processore supportate da un provider, è possibile chiamare BCryptDuplicateKey dalla modalità utente o dal kernel. I chiamanti in modalità kernel possono essere eseguiti in PASSIVE_LEVELirQL o DISPATCH_LEVEL IRQL. Se il livello IRQL corrente è
Per chiamare questa funzione in modalità kernel, usare Cng.lib, che fa parte del Driver Development Kit (DDK). Windows Server 2008 e Windows Vista: Per chiamare questa funzione in modalità kernel, usare Ksecdd.lib.
Fabbisogno
Requisito | Valore |
---|---|
client minimo supportato | Windows Vista [app desktop | App UWP] |
server minimo supportato | Windows Server 2008 [app desktop | App UWP] |
piattaforma di destinazione | Finestre |
intestazione |
bcrypt.h |
libreria |
Bcrypt.lib |
dll | Bcrypt.dll |