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   
