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