SeQueryUserSidToken
INT64 __stdcall SeQueryUserSidToken(VOID *AccessToken, VOID *UserSid, UINT64 Length, UINT64 *RequiredLength){
_ETHREAD *CurrentThread;
ULONG v6;
void *v7;
unsigned int v9;
unsigned __int8 *v10;
ULONG v11;
CurrentThread = (_ETHREAD *)KeGetCurrentThread();
v6 = Length;
v7 = UserSid;
v9 = -1073741789;
--*((_WORD *)CurrentThread + 242);
LOBYTE(UserSid) = 1;
ExAcquireResourceSharedLite(*((PERESOURCE *)AccessToken + 6), (BOOL)UserSid);
v10 = (unsigned __int8 *)**((_QWORD **)AccessToken + 19);
v11 = 4 * v10[1] + 8;
if( v6 >= v11 )
{
RtlCopySid(v11, v7, v10);
v9 = 0;
}
ExReleaseResourceLite(*((PERESOURCE *)AccessToken + 6));
KeLeaveCriticalRegion();
if( RequiredLength )
*(_DWORD *)RequiredLength = v11;
return v9;
}Referenced by:
AlpcpCheckConnectionSecurity
AlpcpPortQueryConnectedSidInfo
AlpcpQuerySidToken
CmpGetVirtualizationID
CmpLogHiveFileInaccessible
EtwQueryProcessTelemetryInfo
EtwpGetSidExtendedHeaderItem
ExpGetProcessInformation
ExpWnfQueryCurrentUserSID
MiFindProcessImageHotPatchRecord
PiDqOpenUserObjectRegKey
PiDqSameUserHive
PopEtGetProcessSidAndPackageIdentity
PspAssignProcessQuotaBlock