Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция BCryptGenRandom создает случайное число.
Синтаксис
NTSTATUS BCryptGenRandom(
[in, out] BCRYPT_ALG_HANDLE hAlgorithm,
[in, out] PUCHAR pbBuffer,
[in] ULONG cbBuffer,
[in] ULONG dwFlags
);
Параметры
[in, out] hAlgorithm
Дескриптор поставщика алгоритмов, созданный с помощью функции BCryptOpenAlgorithmProvider. Алгоритм, указанный при создании поставщика, должен поддерживать интерфейс генератора случайных чисел.
[in, out] pbBuffer
Адрес буфера, получающего случайное число. Размер этого буфера задается параметром cbBuffer.
[in] cbBuffer
Размер в байтах буфера pbBuffer.
[in] dwFlags
Набор флагов, изменяющих поведение этой функции. Этот параметр может быть равен нулю или следующему значению.
| Ценность | Значение |
|---|---|
|
Эта функция будет использовать число в буфере pbBuffer в качестве дополнительной энтропии для случайного числа. Если этот флаг не указан, эта функция будет использовать случайное число для энтропии.
Windows 8 и более поздних версий: этот флаг игнорируется в Windows 8 и более поздних версиях. |
|
Используйте алгоритм генератора случайных чисел, предпочитаемый системой. Параметр BCRYPT_USE_SYSTEM_PREFERRED_RNG поддерживается только в PASSIVE_LEVELIRQL. Дополнительные сведения см. в разделе "Примечания". Windows Vista: этот флаг не поддерживается без пакета обновления 2 (SP2). |
Возвращаемое значение
Возвращает код состояния, указывающий на успешность или сбой функции.
Возможные коды возврата включают в себя, но не ограничиваются следующими.
| Возвращаемый код | Описание |
|---|---|
|
Функция была успешной. |
|
Дескриптор в параметре hAlgorithm |
|
Один или несколько параметров недопустимы. |
Замечания
Поставщик случайных чисел по умолчанию реализует алгоритм для создания случайных чисел, которые соответствуют стандарту NIST SP800-90, в частности, CTR_DRBG части этого стандарта.
Windows Vista: до Windows Vista с пакетом обновления 1 (SP1) поставщик случайных чисел по умолчанию реализует алгоритм создания случайных чисел, которые соответствуют стандарту FIPS 186-2.
В зависимости от того, какие режимы процессора поддерживает поставщик, BCryptGenRandom можно вызывать из пользовательского режима или режима ядра. Вызывающие серверы режима ядра могут выполняться в PASSIVE_LEVELIRQL или DISPATCH_LEVEL IRQL. Если текущий уровень IRQL
Чтобы вызвать эту функцию в режиме ядра, используйте Cng.lib, которая входит в состав пакета средств разработки драйверов (DDK). Windows Server 2008 и Windows Vista: для вызова этой функции в режиме ядра используйте Ksecdd.lib.
Требования
| Требование | Ценность |
|---|---|
| минимальные поддерживаемые клиентские | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Виндоус |
| заголовка | bcrypt.h |
| библиотеки |
Bcrypt.lib или Cng.lib(для режима ядра) |
| DLL | Bcrypt.dll |