BCryptGenRandom, fonction (bcrypt.h)
La fonction BCryptGenRandom génère un nombre aléatoire.
Syntaxe
NTSTATUS BCryptGenRandom(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] PUCHAR pbBuffer,
[in] ULONG cbBuffer,
[in] ULONG dwFlags
);
Paramètres
[in, out] hAlgorithm
Handle d’un fournisseur d’algorithmes créé à l’aide de la fonction BCryptOpenAlgorithmProvider. L’algorithme spécifié lors de la création du fournisseur doit prendre en charge l’interface du générateur de nombres aléatoires.
[in, out] pbBuffer
Adresse d’une mémoire tampon qui reçoit le nombre aléatoire. La taille de cette mémoire tampon est spécifiée par le paramètre cbBuffer
[in] cbBuffer
Taille, en octets, de la mémoire tampon pbBuffer.
[in] dwFlags
Ensemble d’indicateurs qui modifient le comportement de cette fonction. Ce paramètre peut être égal à zéro ou à la valeur suivante.
Valeur de retour
Retourne un code d’état qui indique la réussite ou l’échec de la fonction.
Les codes de retour possibles incluent, mais ne sont pas limités à, les éléments suivants.
Retourner le code | Description |
---|---|
|
La fonction a réussi. |
|
Le handle dans le paramètre hAlgorithm n’est pas valide. |
|
Un ou plusieurs paramètres ne sont pas valides. |
Remarques
Le fournisseur de nombres aléatoires par défaut implémente un algorithme pour générer des nombres aléatoires conformes à la norme NIST SP800-90, en particulier la partie CTR_DRBG de cette norme.
Windows Vista : Avant Windows Vista avec Service Pack 1 (SP1), le fournisseur de nombres aléatoires par défaut implémente un algorithme pour générer des nombres aléatoires conformes à la norme FIPS 186-2.
Selon les modes de processeur pris en charge par un fournisseur, BCryptGenRandom peut être appelé à partir du mode utilisateur ou du mode noyau. Les appelants en mode noyau peuvent s’exécuter à PASSIVE_LEVEL IRQL ou DISPATCH_LEVEL IRQL. Si le niveau IRQL actuel est DISPATCH_LEVEL, le handle fourni dans le paramètre hAlgorithm doit avoir été ouvert à l’aide de l’indicateur BCRYPT_PROV_DISPATCH, et tous les pointeurs passés à la fonction BCryptGenRandom doivent faire référence à la mémoire non page (ou verrouillée). Windows Vista : Le fournisseur Microsoft ne prend pas en charge l’appel à DISPATCH_LEVEL.
Pour appeler cette fonction en mode noyau, utilisez Cng.lib, qui fait partie du Kit de développement de pilotes (DDK). Windows Server 2008 et Windows Vista : Pour appeler cette fonction en mode noyau, utilisez Ksecdd.lib.
Exigences
Exigence | Valeur |
---|---|
client minimum pris en charge | Windows Vista [applications de bureau | Applications UWP] |
serveur minimum pris en charge | Windows Server 2008 [applications de bureau | Applications UWP] |
plateforme cible | Windows |
d’en-tête | bcrypt.h |
bibliothèque | Bcrypt.lib ou Cng.lib(pour le mode noyau) |
DLL | Bcrypt.dll |