예제 #1
0
        private unsafe void Deserialize2ndPass(EVENT_RECORD *eventRecord)
        {
            uint threadId    = eventRecord->ThreadId;
            int  pointerSize = (eventRecord->Flags & Etw.EVENT_HEADER_FLAG_64_BIT_HEADER) != 0 ? 8 : 4;

            if (eventRecord->ProviderId == SampleEvent && eventRecord->Opcode == 46)
            {
                threadId = *(uint *)(eventRecord->UserData + pointerSize);
            }

            if (this.samplesTimeStampMap.TryGetValue(new CorrelatedStackEvent(eventRecord->TimeStamp, threadId), out var index))
            {
                var providerId = eventRecord->ProviderId;
                var eventId    = (eventRecord->Flags & Etw.EVENT_HEADER_FLAG_CLASSIC_HEADER) != 0 ? eventRecord->Opcode : eventRecord->Id;
                var key        = new EtwProviderInfo(eventRecord->ProviderId, eventRecord->Id, eventRecord->Opcode);

                if (!this.etwProviderInfoMap.TryGetValue(key, out var stackEventType))
                {
                    var id = this.etwProviderInfoMapIndex++;
                    stackEventType = new StackEventType(id, TdhGetManifestEventInformation(providerId, eventId));
                    this.etwProviderInfoMap.Add(key, stackEventType);
                    this.EventStacks.Add(id, stackEventType);
                }

                stackEventType.SampleIndices.Add(index);
            }
        }
 public bool DeleteStackEventType(StackEventType entity)
 {
     if(entity==null) return false;
        _unitOfWork.StackEventTypeRepository.Delete(entity);
        _unitOfWork.Save();
        return true;
 }
예제 #3
0
 public bool DeleteStackEventType(StackEventType entity)
 {
     if (entity == null)
     {
         return(false);
     }
     _unitOfWork.StackEventTypeRepository.Delete(entity);
     _unitOfWork.Save();
     return(true);
 }
예제 #4
0
 public bool EditStackEventType(StackEventType entity)
 {
     _unitOfWork.StackEventTypeRepository.Edit(entity);
     _unitOfWork.Save();
     return(true);
 }
 public bool EditStackEventType(StackEventType entity)
 {
     _unitOfWork.StackEventTypeRepository.Edit(entity);
        _unitOfWork.Save();
        return true;
 }