Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
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 |