o
    �õ±j^	  ã                   @   s@   d dl T G dd„ deƒZeeƒZdd„ Zddd„Zdd	d
„ZdS )é    )Ú*c                   @   s"   e Zd ZdefdefdefgZdS )Ú
MODULEINFOÚlpBaseOfDllÚSizeOfImageÚ
EntryPointN)Ú__name__Ú
__module__Ú__qualname__ÚLPVOIDÚDWORDÚ_fields_© r   r   úŽ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/utils/winapi/psapi.pyr   
   s
    ýr   c                    s’   t jj}ttttg|_t|_	t
|_d}t|ƒ}ttƒ}	 t||  ƒ ‰ || tˆ ƒ|t|ƒƒ |j}||kr6n|}q‡ fdd„tdt|| ƒƒD ƒS )Ni   é   c                    s   g | ]}ˆ | ‘qS r   r   )Ú.0Úindex©Ú	lphModuler   r   Ú
<listcomp>(   s    z&EnumProcessModules.<locals>.<listcomp>r   )ÚwindllÚpsapiÚEnumProcessModulesÚHANDLEr
   r   ÚLPDWORDÚargtypesÚboolÚrestypeÚRaiseIfZeroÚerrcheckÚsizeofÚHMODULEÚbyrefÚvalueÚrangeÚint)ÚhProcessÚ_EnumProcessModulesÚsizeÚ
lpcbNeededÚunitÚneededr   r   r   r      s    ú r   Nc                 C   sl   t jjj}ttttg|_t|_	t
}	 t  d|¡}|| |||ƒ}|dkr't  ¡ ‚||d k r1	 |jS |t
 }q)Nr   Ú r   )Úctypesr   r   ÚGetModuleFileNameExWr   r    ÚLPWSTRr   r   r   ÚMAX_PATHÚcreate_unicode_bufferÚWinErrorr"   )r%   ÚhModuleÚ_GetModuleFileNameExWÚnSizeÚ
lpFilenameÚnCopiedr   r   r   r-   *   s   
ÿùr-   c                 C   sJ   t jj}ttttg|_t|_	t
|_|d u rtƒ }|| |t|ƒt|ƒƒ |S ©N)r   r   ÚGetModuleInformationr   r    ÚLPMODULEINFOr   r   r   r   r   r   r   r!   r   )r%   r2   Ú	lpmodinfoÚ_GetModuleInformationr   r   r   r8   @   s   r8   r7   )Úminidump.utils.winapi.definesÚ	Structurer   ÚPOINTERr9   r   r-   r8   r   r   r   r   Ú<module>   s   
