#ifndef STARDUST_CONSTEXPR_H #define STARDUST_CONSTEXPR_H #include #define HASH_STR( x ) ExprHashStringA( ( x ) ) CONSTEXPR ULONG ExprHashStringA( _In_ PCHAR String ) { ULONG Hash = { 0 }; CHAR Char = { 0 }; Hash = H_MAGIC_KEY; if ( ! String ) { return 0; } while ( ( Char = *String++ ) ) { if ( Char >= 'a' ) { Char -= 0x20; } Hash ^= (UCHAR)Char; Hash *= H_MAGIC_PRIME; } return Hash; } #endif //STARDUST_CONSTEXPR_H