o
    j                     @   sb   d dl Z d dlZG dd dejZG dd dejZG dd dZG dd	 d	ZG d
d dZdS )    Nc                   @   s   e Zd ZdZdZdZdS )MinidumpMiscInfo2Flags1         N)__name__
__module____qualname__MINIDUMP_MISC1_PROCESS_IDMINIDUMP_MISC1_PROCESS_TIMES#MINIDUMP_MISC1_PROCESSOR_POWER_INFO r   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/streams/MiscInfoStream.pyr   
   s    r   c                   @   s   e Zd ZdZdZdS )MinidumpMiscInfoFlags1r   r   N)r   r   r   r	   r
   r   r   r   r   r      s    r   c                   @   $   e Zd ZdZdd Zedd ZdS )MINIDUMP_MISC_INFO   c                 C   s(   d | _ d | _d | _d | _d | _d | _d S N)
SizeOfInfoFlags1	ProcessIdProcessCreateTimeProcessUserTimeProcessKernelTimeselfr   r   r   __init__   s   
zMINIDUMP_MISC_INFO.__init__c                 C   s   t  }tj| dddd|_ttj| dddd|_|jtj@ r0tj| dddd|_n| d |jtj	@ ratj| dddd|_
tj| dddd|_tj| dddd|_|S | d |S )Nr   littleF	byteordersigned   )r   int
from_bytesreadr   r   r   r	   r   r
   r   r   r   buffmmir   r   r   parse   s   

zMINIDUMP_MISC_INFO.parseNr   r   r   sizer   staticmethodr'   r   r   r   r   r      s
    r   c                   @   r   )MINIDUMP_MISC_INFO_2,   c                 C   sF   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d | _	d | _
d S r   )r   r   r   r   r   r   ProcessorMaxMhzProcessorCurrentMhzProcessorMhzLimitProcessorMaxIdleStateProcessorCurrentIdleStater   r   r   r   r   4   s   
zMINIDUMP_MISC_INFO_2.__init__c                 C   s`  t  }tj| dddd|_ttj| dddd|_|jtj@ r0tj| dddd|_n| d |jtj	@ r`tj| dddd|_
tj| dddd|_tj| dddd|_n| d |jtj@ rtj| dddd|_tj| dddd|_tj| dddd|_tj| dddd|_tj| dddd|_|S | d |S )Nr   r   Fr   r       )r+   r!   r"   r#   r   r   r   r	   r   r
   r   r   r   r   r-   r.   r/   r0   r1   r$   r   r   r   r'   A   s(   


zMINIDUMP_MISC_INFO_2.parseNr(   r   r   r   r   r+   2   s
    r+   c                   @   s4   e Zd Zdd Zedd Zedd Zdd Zd	S )
MinidumpMiscInfoc                 C   s:   d | _ d | _d | _d | _d | _d | _d | _d | _d | _d S r   	r   r   r   r   r-   r.   r/   r0   r1   r   r   r   r   r   \   s   
zMinidumpMiscInfo.__init__c                 C   s   t  }|| jj t|| jj}| jjtj	kr2t
|}|j|_|j|_|j|_|j|_|S t
|}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|S r   )r3   seekLocationRvaioBytesIOr#   DataSizer   r)   r'   r   r   r   r   r+   r-   r.   r/   r0   r1   )dirr%   tchunkmiscr   r   r   r'   g   s*   

zMinidumpMiscInfo.parsec                    s   t  }|| jjI d H  || jjI d H }t|}| jjtj	kr;t
|}|j|_|j|_|j|_|j|_|S t
|}|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|j|_|S r   )r3   r5   r6   r7   r#   r:   r8   r9   r   r)   r'   r   r   r   r   r+   r-   r.   r/   r0   r1   )r;   r%   r<   
chunk_datar=   r>   r   r   r   aparse   s.   


zMinidumpMiscInfo.aparsec                 C   s   d}|d| j  7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d| j 7 }|d	| j 7 }|d
| j 7 }|S )Nz== MinidumpMiscInfo ==
zProcessId %s
zProcessCreateTime %s
zProcessUserTime %s
zProcessKernelTime %s
zProcessorMaxMhz %s
zProcessorCurrentMhz %s
zProcessorMhzLimit %s
zProcessorMaxIdleState %s
zProcessorCurrentIdleState %s
r4   )r   r<   r   r   r   __str__   s   zMinidumpMiscInfo.__str__N)r   r   r   r   r*   r'   r@   rA   r   r   r   r   r3   [   s    

r3   )r8   enumIntFlagr   r   r   r+   r3   r   r   r   r   <module>   s   )