BCryptGenRandom-Funktion (bcrypt.h)
Die BCryptGenRandom Funktion generiert eine Zufallszahl.
Syntax
NTSTATUS BCryptGenRandom(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] PUCHAR pbBuffer,
[in] ULONG cbBuffer,
[in] ULONG dwFlags
);
Parameter
[in, out] hAlgorithm
Das Handle eines Algorithmusanbieters, der mithilfe der BCryptOpenAlgorithmProvider-Funktion erstellt wurde. Der Algorithmus, der beim Erstellen des Anbieters angegeben wurde, muss die Zufallszahlengeneratorschnittstelle unterstützen.
[in, out] pbBuffer
Die Adresse eines Puffers, der die Zufallszahl empfängt. Die Größe dieses Puffers wird durch den cbBuffer Parameter angegeben.
[in] cbBuffer
Die Größe des pbBuffer- Puffers in Byte.
[in] dwFlags
Eine Reihe von Flags, die das Verhalten dieser Funktion ändern. Dieser Parameter kann null oder der folgende Wert sein.
Wert | Bedeutung |
---|---|
|
Diese Funktion verwendet die Zahl im pbBuffer Puffer als zusätzliche Entropie für die Zufallszahl. Wenn dieses Kennzeichen nicht angegeben ist, verwendet diese Funktion eine Zufallszahl für die Entropie.
Windows 8 und höher: Dieses Kennzeichen wird in Windows 8 und höher ignoriert. |
|
Verwenden Sie den vom System bevorzugten Zufallszahlengeneratoralgorithmus. Der hAlgorithm Parameter muss NULL-sein.
BCRYPT_USE_SYSTEM_PREFERRED_RNG wird nur bei PASSIVE_LEVELIRQL-unterstützt. Weitere Informationen finden Sie in den Hinweisen. Windows Vista: Dieses Flag wird ohne SP2 nicht unterstützt. |
Rückgabewert
Gibt einen Statuscode zurück, der den Erfolg oder Fehler der Funktion angibt.
Mögliche Rückgabecodes umfassen, aber nicht beschränkt auf Folgendes.
Rückgabecode | Beschreibung |
---|---|
|
Die Funktion war erfolgreich. |
|
Das Handle im hAlgorithm Parameter ist ungültig. |
|
Mindestens ein Parameter ist ungültig. |
Bemerkungen
Der Standardmäßige Zufallszahlenanbieter implementiert einen Algorithmus zum Generieren von Zufallszahlen, der dem NIST SP800-90-Standard entspricht, insbesondere den CTR_DRBG Teil dieses Standards.
Windows Vista: Vor Windows Vista mit Service Pack 1 (SP1) implementiert der Standardmäßige Zufallszahlenanbieter einen Algorithmus zum Generieren von Zufallszahlen, die dem FIPS 186-2-Standard entsprechen.
Je nachdem, welche Prozessormodi ein Anbieter unterstützt, kann BCryptGenRandom entweder über den Benutzermodus oder den Kernelmodus aufgerufen werden. Kernelmodusaufrufer können entweder PASSIVE_LEVELIRQL- oder DISPATCH_LEVEL IRQL ausgeführt werden. Wenn die aktuelle IRQL-Ebene DISPATCH_LEVEList, muss das im hAlgorithm Parameter bereitgestellte Handle mithilfe des BCRYPT_PROV_DISPATCH-Flags geöffnet worden sein, und alle Zeiger, die an die BCryptGenRandom--Funktion übergeben werden, müssen auf nicht seitenseitigen (oder gesperrten) Speicher verweisen. Windows Vista: Der Microsoft-Anbieter unterstützt keine Anrufe unter DISPATCH_LEVEL.
Um diese Funktion im Kernelmodus aufzurufen, verwenden Sie Cng.lib, das Teil des Driver Development Kit (DDK) ist. Windows Server 2008 und Windows Vista: Verwenden Sie Ksecdd.lib, um diese Funktion im Kernelmodus aufzurufen.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Windows Vista [Desktop-Apps | UWP-Apps] |
mindestens unterstützte Server- | Windows Server 2008 [Desktop-Apps | UWP-Apps] |
Zielplattform- | Fenster |
Header- | bcrypt.h |
Library | Bcrypt.lib oder Cng.lib(Für Kernelmodus) |
DLL- | Bcrypt.dll |