阅读:3153回复:2
请问在驱动中如何产生随机数?
因为在驱动中不能调用Time()
rand() 不知道怎么产生随机数呢? |
|
沙发#
发布于:2007-06-14 03:13
产生的数随机程度我不知道怎么样
你试试 struct Rand_Context { int Seed; }; unsigned long InitRand (struct Rand_Context *pContext,signed int seed) { pContext->Seed=(unsigned long)seed; return pContext->Seed; } int random(struct Rand_Context *pContext,int min,int max) { int Result=( ( ((pContext->Seed) = (pContext->Seed) * 214013L+ 2531011L) >> 16) & 0x7fff ); Result= Result /(0x7fff/max)+min; while(Result>max||Result<min) { Result=( ( ((pContext->Seed) = (pContext->Seed) * 214013L+ 2531011L) >> 16) & 0x7fff ); Result= Result /(0x7fff/max)+min; } return Result; } |
|
|
板凳#
发布于:2007-06-14 08:30
补充:用KeQuerySystemTime拿时间
|
|
|