AlpcpQueryTokenModifiedIdMessage
INT64 __fastcall AlpcpQueryTokenModifiedIdMessage(
_ALPC_PORT *PortObject,
_KALPC_MESSAGE *Message,
_LUID *TokenModifiedId,
UINT64 Length,
UINT64 *ReturnLength){
unsigned int v5;
int v9;
INT64 result;
VOID *AccessToken;
_TOKEN_CONTROL TokenControl;
_SECURITY_CLIENT_CONTEXT DynamicSecurity;
UINT8 FreeDynamicSecurity;
v5 = Length;
memset((INT64)&DynamicSecurity, 0i64);
FreeDynamicSecurity = 0;
AccessToken = 0i64;
*(_OWORD *)&TokenControl.ModifiedId.LowPart = 0i64;
if( v5 >= 8 )
{
result = AlpcpGetEffectiveTokenMessage(PortObject, Message, &AccessToken, &DynamicSecurity, &FreeDynamicSecurity);
v9 = result;
if( (int)result < 0 )
return result;
SeGetTokenControlInformation(AccessToken, &TokenControl);
if( FreeDynamicSecurity )
HalPutDmaAdapter((PADAPTER_OBJECT)DynamicSecurity.ClientToken);
}
else
{
v9 = -1073741789;
}
if( ReturnLength )
*(_DWORD *)ReturnLength = 8;
if( v9 >= 0 )
*TokenModifiedId = TokenControl.ModifiedId;
return(unsigned int)v9;
}Referenced by:
NtAlpcQueryInformationMessage