WdipSemGetGuidKey
NTSTATUS __stdcall WdipSemGetGuidKey(const _GUID *Guid, UINT64 *Key){
NTSTATUS v2;
__int64 v3;
unsigned int v4;
unsigned __int8 *Data4;
int v6;
v2 = 0;
if( !Guid || !Key )
return -1073741811;
v3 = 8i64;
v4 = Guid->Data1
+ ((320411091 * Guid->Data3 + 1) & 0xFFFF0000 | ((12345 - 393795277 * (unsigned int)Guid->Data3) >> 16))
+ ((320411091 * Guid->Data2 + 1) & 0xFFFF0000 | ((12345 - 393795277 * (unsigned int)Guid->Data2) >> 16));
Data4 = Guid->Data4;
do
{
v6 = *Data4++;
v4 += (320411091 * v6 + 1) & 0xFFFF0000 | ((unsigned int)(12345 - 393795277 * v6) >> 16);
--v3;
}
while( v3 );
*(_DWORD *)Key = ((69069 * v4 + 1) & 0xFFFF0000 | ((1103515245 * v4 + 12345) >> 16)) % 0x7FFFFFFF;
return v2;
}Referenced by:
WdipSemSqmLogInflightLimitExceededDataPoints
WdipSemSqmLogTimeoutDataPoints