U
    ‡ª/e9  ã                   @   sŒ  d dl Z d dlmZmZmZmZmZmZ d dlm	Z	 e j
Ze  e¡Ze jZe jZe jZG dd„ de jƒZG dd„ de jƒZG dd	„ d	e jƒZed
ƒZdZdZdZdZdd„ fdd„Ze jjZeƒ ej _!eej _"eefej _#edd„ ƒej$_!eej$_"eefej$_#edd„ ƒej%_!eej%_"eeefej%_#eƒ ej&_!eej&_"eeeeefej&_#eƒ ej'_!eej'_"eeeefej'_#eƒ ej(_!eej(_"eefej(_#dS )é    N)ÚBOOLÚDWORDÚHANDLEÚLARGE_INTEGERÚLPCSTRÚUINT)Úlogc                   @   s4   e Zd ZdefdefdefdefdefdefgZdS )ÚIO_COUNTERSZReadOperationCountZWriteOperationCountZOtherOperationCountZReadTransferCountZWriteTransferCountZOtherTransferCountN)Ú__name__Ú
__module__Ú__qualname__Ú	ULONGLONGÚ_fields_© r   r   ú;/tmp/pip-unpacked-wheel-dg3irmqq/debugpy/launcher/winapi.pyr	      s   úr	   c                
   @   sF   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g	Zd
S )Ú!JOBOBJECT_BASIC_LIMIT_INFORMATIONZPerProcessUserTimeLimitZPerJobUserTimeLimitZ
LimitFlagsZMinimumWorkingSetSizeZMaximumWorkingSetSizeZActiveProcessLimitZAffinityZPriorityClassZSchedulingClassN)r
   r   r   r   r   ÚSIZE_Tr   r   r   r   r   r      s   ÷r   c                   @   s4   e Zd ZdefdefdefdefdefdefgZdS )Ú$JOBOBJECT_EXTENDED_LIMIT_INFORMATIONZBasicLimitInformationZIoInfoZProcessMemoryLimitZJobMemoryLimitZPeakProcessMemoryUsedZPeakJobMemoryUsedN)r
   r   r   r   r	   r   r   r   r   r   r   r   +   s   úr   é	   i   i    é   é   c                 C   s   |  S )Nr   ©Úresultr   r   r   Ú<lambda>?   ó    r   c                    s   ‡ fdd„}|S )Nc                    s*   ˆ | ƒr"t  d|j| ¡ t ¡ ‚n| S d S )Nz{0} returned {1})r   Údebugr
   ÚctypesZWinError)r   ÚfuncÚargs©Úis_error_resultr   r   Úimpl@   s    
z_errcheck.<locals>.implr   )r    r!   r   r   r   Ú	_errcheck?   s    r"   c                 C   s   | dkS ©Nr   r   r   r   r   r   r   P   r   c                 C   s   | dkS r#   r   r   r   r   r   r   T   r   ))r   Zctypes.wintypesr   r   r   r   r   r   Zdebugpy.commonr   Úc_intZJOBOBJECTCLASSÚPOINTERZLPDWORDÚc_void_pZLPVOIDÚc_size_tr   Úc_ulonglongr   Ú	Structurer	   r   r   Z!JobObjectExtendedLimitInformationZJOB_OBJECT_LIMIT_BREAKAWAY_OKZ"JOB_OBJECT_LIMIT_KILL_ON_JOB_CLOSEZPROCESS_TERMINATEZPROCESS_SET_QUOTAr"   ÚwindllÚkernel32ZAssignProcessToJobObjectÚerrcheckÚrestypeÚargtypesZCreateJobObjectAZOpenProcessZQueryInformationJobObjectZSetInformationJobObjectZTerminateJobObjectr   r   r   r   Ú<module>   sP    


û

