o
    �õ±j¸  ã                   @   sš   d dl T d dlZd dlmZmZmZ G dd„ deƒZG dd„ deƒZG dd	„ d	eƒZe 	e¡Z
G d
d„ deƒZG dd„ deƒZdd„ Zdd„ Zdd„ ZdS )é    )Ú*N)ÚwindllÚbyrefÚ	Structurec                   @   s   e Zd ZdefdefgZdS )Ú_SYSTEM_INFO_OEM_ID_STRUCTÚwProcessorArchitectureÚ	wReservedN)Ú__name__Ú
__module__Ú__qualname__ÚWORDÚ_fields_© r   r   ú�/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/minidump/utils/winapi/version.pyr      ó    þr   c                   @   s   e Zd ZdefdefgZdS )Ú_SYSTEM_INFO_OEM_IDÚdwOemIdÚwN)r	   r
   r   ÚDWORDr   r   r   r   r   r   r      r   r   c                   @   s€   e Zd Zdefdefdefdefdefdefdefdefd	efd
efg
Zdd„ Z	dd„ Z
ee	e
ƒZdd„ Zdd„ ZeeeƒZdS )ÚSYSTEM_INFOÚidÚ
dwPageSizeÚlpMinimumApplicationAddressÚlpMaximumApplicationAddressÚdwActiveProcessorMaskÚdwNumberOfProcessorsÚdwProcessorTypeÚdwAllocationGranularityÚwProcessorLevelÚwProcessorRevisionc                 C   s   | j jS ©N©r   r   ©Úselfr   r   r   Ú__get_dwOemId    s   zSYSTEM_INFO.__get_dwOemIdc                 C   s   || j _d S r    r!   ©r#   Úvaluer   r   r   Ú__set_dwOemId"   s   zSYSTEM_INFO.__set_dwOemIdc                 C   s
   | j jjS r    ©r   r   r   r"   r   r   r   Ú__get_wProcessorArchitecture&   s   
z(SYSTEM_INFO.__get_wProcessorArchitecturec                 C   s   || j j_d S r    r(   r%   r   r   r   Ú__set_wProcessorArchitecture(   s   z(SYSTEM_INFO.__set_wProcessorArchitectureN)r	   r
   r   r   r   ÚLPVOIDÚ	DWORD_PTRr   r   Ú_SYSTEM_INFO__get_dwOemIdÚ_SYSTEM_INFO__set_dwOemIdÚpropertyr   Ú(_SYSTEM_INFO__get_wProcessorArchitectureÚ(_SYSTEM_INFO__set_wProcessorArchitecturer   r   r   r   r   r      s$    ö
r   c                   @   s8   e Zd Zdefdefdefdefdefded fgZdS )	ÚOSVERSIONINFOWÚdwOSVersionInfoSizeÚdwMajorVersionÚdwMinorVersionÚdwBuildNumberÚdwPlatformIdÚszCSDVersioné€   N)r	   r
   r   r   ÚWCHARr   r   r   r   r   r2   .   s    
úr2   c                   @   sV   e Zd Zdefdefdefdefdefded fdefd	efd
efdefdefgZdS )ÚOSVERSIONINFOEXWr3   r4   r5   r6   r7   r8   r9   ÚwServicePackMajorÚwServicePackMinorÚ
wSuiteMaskÚwProductTyper   N)r	   r
   r   r   r:   r   ÚBYTEr   r   r   r   r   r;   8   s    
õr;   c                  C   s,   t jj} tg| _d | _tƒ }| t|ƒƒ |S r    )r   Úkernel32ÚGetSystemInfoÚLPSYSTEM_INFOÚargtypesÚrestyper   r   )Ú_GetSystemInfoÚsysinfor   r   r   rB   H   s   rB   c                  C   s€   t jj} ttƒg| _t| _t| _	tƒ }t
|ƒ|_z	| t|ƒƒ W |S  ty?   tƒ }t
|ƒ|_ttƒg| _| t|ƒƒ Y |S w r    )r   rA   ÚGetVersionExWÚPOINTERr;   rD   ÚboolrE   ÚRaiseIfZeroÚerrcheckÚsizeofr3   r   ÚWindowsErrorr2   )Ú_GetVersionExWÚosir   r   r   rH   Q   s    
û
ûrH   c                 C   sj   t jj}ttttg|_t|_t	|_
t jj}ttg|_t|_t	|_
|| d ƒ}t |¡}|| d|t|ƒƒ |S )Nr   )r   ÚversionÚGetFileVersionInfoWÚLPWSTRr   r+   rD   rJ   rE   rK   rL   ÚGetFileVersionInfoSizeWÚctypesÚcreate_string_bufferr   )ÚlptstrFilenameÚ_GetFileVersionInfoWÚ_GetFileVersionInfoSizeWÚdwLenÚlpDatar   r   r   rR   b   s   


rR   )Úminidump.utils.winapi.definesrU   r   r   r   r   ÚUnionr   r   rI   rC   r2   r;   rB   rH   rR   r   r   r   r   Ú<module>   s    

	