o
    jN                     @   s^   d dl T G dd deZeeZG dd deZeeZdZdd Z	dd	d
Z
dd ZdS )    )*c                   @      e Zd ZdefgZdS )LOCALGROUP_USERS_INFO_0lgrui0_nameN__name__
__module____qualname__LPWSTR_fields_ r   r   /root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/winacl/functions/netapi32.pyr          r   c                   @   r   )USER_INFO_0
usri0_nameNr   r   r   r   r   r   	   r   r      c                 C   s(   t jj}tg|_t|_t|_||  d S )N)	windllnetapi32NetApiBufferFreeHLOCALargtypesDWORDrestypeRaiseIfNotErrorSuccesserrcheck)pBuffer_NetApiBufferFreer   r   r   r      s
   r   c                 C   s   t jj}ttttttttg|_t|_t	|_
g }d}| dur"t| }t|}d}ttd}d}	td}
td}|||||t||	t|
t| t|
j }tt|jt|}td|
jD ]}||j| j qdtt|j |S )zS
	flags can be 0 or LG_INCLUDE_INDIRECT to include all indirect group memberships
	Nr   )r   r   NetUserGetLocalGroupsr
   r   PVOIDLPDWORDr   r   r   r   ctypescreate_unicode_bufferpointerbyrefr   valuecast	addressofcontentsPOINTERrangeappendr   r   )server_name	user_nameflags_NetUserGetLocalGroupsmembership_goupspserver_name
puser_namelevelbufptr
prefmaxlenentriesreadtotalentrieselemsresir   r   r   r   )   s<   


r   c                 C   s   t jj}ttttg|_t|_t|_	d}d }| d urt
| }d }|d ur)t
|}t
td}||||| t
t|jt}t| tt|j d S )Nr   )r   r   NetUserGetInfor
   r   r    r   r   r   r   r!   r"   r#   r&   r'   r(   PUSER_INFO_0printr   )r,   r-   _NetUserGetInfor3   r1   r2   r4   r9   r   r   r   r;   \   s*   

r;   N)r   )winacl.functions.defines	Structurer   r!   r)   PLOCALGROUP_USERS_INFO_0r   r<   LG_INCLUDE_INDIRECTr   r   r;   r   r   r   r   <module>   s    


3