in JetBrains.HabitatDetector/src/Impl/Windows/WindowsHelper.cs [146:169]
private static unsafe bool IsBuildInGroupMember(void* hToken, uint domainAliasRid)
{
var ntAuthority = SID_IDENTIFIER_AUTHORITY.SECURITY_NT_AUTHORITY;
void* groupSid;
if (Advapi32Dll.AllocateAndInitializeSid(
&ntAuthority,
2,
RID.SECURITY_BUILTIN_DOMAIN_RID,
domainAliasRid,
0, 0, 0, 0, 0, 0,
&groupSid) == 0)
throw new Win32Exception();
try
{
int isMember;
if (Advapi32Dll.CheckTokenMembership(hToken, groupSid, &isMember) == 0)
throw new Win32Exception();
return isMember != 0;
}
finally
{
Advapi32Dll.FreeSid(groupSid);
}
}