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    

	