我正在使用vs2015和wdk10,我可以在一个空项目中使用 random 。
#include <random>
std::default_random_engine eng;//works fine .
但是,当我创建一个空的内核模式驱动程序项目时,不能在其中使用随机。
#include <random>
std::default_random_engine eng;//namespace "std" has no member "default_random_engine"
其他标准库,例如 vector 和元组也不起作用,所有这些提醒我, namespace “std”没有成员XXX ( vector ,元组等)。
我该如何解决?
最佳答案
std库的实现需要正常工作的异常处理,代码才能正常工作。这就阻止了标准库的端口在内核中执行。
在内核中不起作用的其他代码示例是
如评论中所述
RtlRandomEx
产生伪随机数,并且在内核中可用。
对于密码安全随机性,此页面具有一定的值(value)。
MS crypto primatives