o
    àý°jkä ã                   @   sÚ!  d dl Z d dlmZmZ d dlmZ d dlmZmZmZ d dl	m
Z
mZmZmZmZmZmZmZmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z+ d dl,m-Z- d dl.m/Z/ d d	l0m1Z1m2Z2m3Z3 ed
ƒZ4edƒZ5edƒZ6edƒZ7edƒZ8edƒZ9edƒZ:dZ;dZ<dZ=dZ>dZ?dZ@dZAdZBdZCdZDdZEdZFdZGdZHdZIdZJdZKdZLdZ?dZMdZNdZOd ZPdZQd ZRd!ZSd ZTd ZUdZVdZWdZXdZYeYZZd"Z[dZ\d#Z]d$Z^eZ_d%Z`d!Zad Zbd&Zcd'Zdd(Zed)ZfdZgd*ZhdZid%Zjd+ZkdZld Zmd!Znd Zod&Zpd'ZqdZrd!Zsd Ztd'Zud*ZvdZwdZxd,ZydZzdZ{d-Z|eZ}G d.d/„ d/e}ƒZG d0d1„ d1eƒZ~G d2d3„ d3eƒZG d4d5„ d5eƒZ€G d6d7„ d7e"ƒZ�G d8d9„ d9eƒZ‚G d:d;„ d;eƒZƒeƒZ„G d<d=„ d=e~ƒZ…G d>d?„ d?eƒZ†G d@dA„ dAeƒZ‡G dBdC„ dCeƒZˆG dDdE„ dEeƒZ‰G dFdG„ dGeƒZŠG dHdI„ dIeƒZ‹G dJdK„ dKe†ƒZŒG dLdM„ dMe†ƒZ�G dNdO„ dOe†ƒZŽG dPdQ„ dQe†ƒZ�G dRdS„ dSe†ƒZ�G dTdU„ dUe†ƒZ‘G dVdW„ dWe†ƒZ’G dXdY„ dYe†ƒZ“G dZd[„ d[e†ƒZ”G d\d]„ d]e†ƒZ•G d^d_„ d_e†ƒZ–G d`da„ dae†ƒZ—G dbdc„ dce†ƒZ˜G ddde„ dee†ƒZ™G dfdg„ dge†ƒZšG dhdi„ die†ƒZ›G djdk„ dke†ƒZœG dldm„ dme†ƒZ�G dndo„ doe†ƒZžG dpdq„ dqe†ƒZŸG drds„ dse†ƒZ G dtdu„ due†ƒZ¡G dvdw„ dwe1ƒZ¢�dIdxdy„Z£dzd{„ Z¤d|d}„ Z¥d~d„ Z¦G d€d�„ d�e€ƒZ*G d‚dƒ„ dƒeƒZ§G d„d…„ d…eƒZ¨e§Z©G d†d‡„ d‡eƒZªe§Z«e§Z¬e§Z­e§Z®G dˆd‰„ d‰eƒZ¯G dŠd‹„ d‹eƒZ°G dŒd�„ d�eƒZ±G dŽd�„ d�eƒZ²G d�d‘„ d‘eƒZ³G d’d“„ d“e†ƒZ´G d”d•„ d•eƒZµG d–d—„ d—eƒZ¶G d˜d™„ d™eƒZ·G dšd›„ d›eƒZ¸G dœd�„ d�eƒZ¹G dždŸ„ dŸeƒZºG d d¡„ d¡eƒZ»G d¢d£„ d£eƒZ¼G d¤d¥„ d¥eƒZ½G d¦d§„ d§eƒZ¾G d¨d©„ d©eƒZ¿G dªd«„ d«eƒZÀeZÁG d¬d­„ d­eƒZÂG d®d¯„ d¯eƒZÃG d°d±„ d±eƒZÄG d²d³„ d³eƒZÅG d´dµ„ dµeƒZÆG d¶d·„ d·eƒZÇG d¸d¹„ d¹eƒZÈG dºd»„ d»eƒZÉG d¼d½„ d½eƒZÊG d¾d¿„ d¿eƒZËG dÀdÁ„ dÁeƒZÌG dÂdÃ„ dÃeƒZÍG dÄdÅ„ dÅeƒZÎG dÆdÇ„ dÇeƒZÏG dÈdÉ„ dÉeƒZÐeÍZÑeÏZÒG dÊdË„ dËeƒZÓG dÌdÍ„ dÍeƒZÔG dÎdÏ„ dÏeƒZÕG dÐdÑ„ dÑeƒZÖG dÒdÓ„ dÓeƒZ×G dÔdÕ„ dÕeƒZØG dÖd×„ d×eƒZÙG dØdÙ„ dÙeƒZÚG dÚdÛ„ dÛeƒZÛG dÜdÝ„ dÝeƒZÜG dÞdß„ dßeƒZÝG dàdá„ dáeƒZÞG dâdã„ dãeƒZßG dädå„ dåeƒZàG dædç„ dçeƒZáG dèdé„ déeƒZâG dêdë„ dëeƒZãG dìdí„ díeƒZäG dîdï„ dïeƒZåG dðdñ„ dñeƒZæG dòdó„ dóeƒZçG dôdõ„ dõeƒZèG död÷„ d÷eƒZéG dødù„ dùeƒZêG dúdû„ dûeƒZëG düdý„ dýeƒZìG dþdÿ„ dÿeƒZíG �d �d„ �deƒZîG �d�d„ �deƒZïG �d�d„ �deƒZðG �d�d„ �deƒZñG �d�d	„ �d	eƒZòG �d
�d„ �deƒZóG �d�d„ �deƒZôG �d�d„ �deƒZõG �d�d„ �deƒZöG �d�d„ �deƒZ÷G �d�d„ �deƒZøG �d�d„ �deƒZùG �d�d„ �deƒZúG �d�d„ �deƒZûG �d�d„ �deƒZüG �d�d„ �deƒZýG �d �d!„ �d!eƒZþG �d"�d#„ �d#eƒZÿG �d$�d%„ �d%eƒ�Z G �d&�d'„ �d'eƒ�ZG �d(�d)„ �d)eƒ�ZG �d*�d+„ �d+eƒ�ZG �d,�d-„ �d-eƒ�ZG �d.�d/„ �d/eƒ�ZG �d0�d1„ �d1eƒ�ZG �d2�d3„ �d3eƒ�ZG �d4�d5„ �d5eƒ�ZG �d6�d7„ �d7eƒ�Z	G �d8�d9„ �d9eƒ�Z
G �d:�d;„ �d;eƒ�ZG �d<�d=„ �d=eƒ�ZG �d>�d?„ �d?eƒ�ZG �d@�dA„ �dAeƒ�ZG �dB�dC„ �dCeƒ�ZG �dD�dE„ �dEeƒ�ZG �dF�dG„ �dGeƒ�ZG �dH�dI„ �dIeƒ�ZG �dJ�dK„ �dKeƒ�ZG �dL�dM„ �dMeƒ�ZG �dN�dO„ �dOeƒ�ZG �dP�dQ„ �dQeƒ�ZG �dR�dS„ �dSeƒ�ZG �dT�dU„ �dUeƒ�ZG �dV�dW„ �dWeƒ�ZG �dX�dY„ �dYeƒ�ZG �dZ�d[„ �d[eƒ�ZG �d\�d]„ �d]eƒ�ZG �d^�d_„ �d_eƒ�ZG �d`�da„ �daeƒ�ZG �db�dc„ �dceƒ�ZG �dd�de„ �deeƒ�Z G �df�dg„ �dgeƒ�Z!G �dh�di„ �dieƒ�Z"G �dj�dk„ �dkeƒ�Z#G �dl�dm„ �dmeƒ�Z$G �dn�do„ �doeƒ�Z%G �dp�dq„ �dqeƒ�Z&G �dr�ds„ �dseƒ�Z'G �dt�du„ �dueƒ�Z(G �dv�dw„ �dweƒ�Z)G �dx�dy„ �dyeƒ�Z*G �dz�d{„ �d{eƒ�Z+G �d|�d}„ �d}eƒ�Z,G �d~�d„ �deƒ�Z-G �d€�d�„ �d�eƒ�Z.G �d‚�dƒ„ �dƒeƒ�Z/G �d„�d…„ �d…eƒ�Z0G �d†�d‡„ �d‡eƒ�Z1G �dˆ�d‰„ �d‰eƒ�Z2G �dŠ�d‹„ �d‹eƒ�Z3G �dŒ�d�„ �d�eƒ�Z4G �dŽ�d�„ �d�eƒ�Z5G �d��d‘„ �d‘eƒ�Z6G �d’�d“„ �d“eƒ�Z7G �d”�d•„ �d•eƒ�Z8G �d–�d—„ �d—eƒ�Z9G �d˜�d™„ �d™eƒ�Z:G �dš�d›„ �d›eƒ�Z;G �dœ�d�„ �d�eƒ�Z<G �dž�dŸ„ �dŸeƒ�Z=G �d �d¡„ �d¡eƒ�Z>G �d¢�d£„ �d£eƒ�Z?G �d¤�d¥„ �d¥eƒ�Z@G �d¦�d§„ �d§eƒ�ZAG �d¨�d©„ �d©eƒ�ZBG �dª�d«„ �d«eƒ�ZCG �d¬�d­„ �d­eƒ�ZDG �d®�d¯„ �d¯eƒ�ZEG �d°�d±„ �d±eƒ�ZFG �d²�d³„ �d³eƒ�ZGG �d´�dµ„ �dµeƒ�ZHG �d¶�d·„ �d·eƒ�ZIG �d¸�d¹„ �d¹eƒ�ZJG �dº�d»„ �d»eƒ�ZKG �d¼�d½„ �d½eƒ�ZLG �d¾�d¿„ �d¿eƒ�ZMG �dÀ�dÁ„ �dÁeƒ�ZNG �dÂ�dÃ„ �dÃeƒ�ZOG �dÄ�dÅ„ �dÅeƒ�ZPG �dÆ�dÇ„ �dÇeƒ�ZQG �dÈ�dÉ„ �dÉeƒ�ZRG �dÊ�dË„ �dËeƒ�ZSG �dÌ�dÍ„ �dÍeƒ�ZTG �dÎ�dÏ„ �dÏeƒ�ZUG �dÐ�dÑ„ �dÑeƒ�ZVG �dÒ�dÓ„ �dÓeƒ�ZWG �dÔ�dÕ„ �dÕeƒ�ZXG �dÖ�d×„ �d×eƒ�ZYG �dØ�dÙ„ �dÙeƒ�ZZG �dÚ�dÛ„ �dÛeƒ�Z[G �dÜ�dÝ„ �dÝeƒ�Z\G �dÞ�dß„ �dßeƒ�Z]G �dà�dá„ �dáeƒ�Z^G �dâ�dã„ �dãeƒ�Z_G �dä�då„ �dåeƒ�Z`G �dæ�dç„ �dçeƒ�ZaG �dè�dé„ �déeƒ�ZbG �dê�dë„ �dëeƒ�ZcG �dì�dí„ �díeƒ�ZdG �dî�dï„ �dïeƒ�ZeG �dð�dñ„ �dñeƒ�ZfG �dò�dó„ �dóeƒ�ZgG �dô�dõ„ �dõeƒ�ZhG �dö�d÷„ �d÷eƒ�ZiG �dø�dù„ �dùeƒ�ZjG �dú�dû„ �dûeƒ�ZkG �dü�dý„ �dýeƒ�ZlG �dþ�dÿ„ �dÿeƒ�ZmG �d �d„ �deƒ�ZnG �d�d„ �deƒ�ZoG �d�d„ �deƒ�ZpG �d�d„ �deƒ�ZqG �d�d	„ �d	eƒ�ZrG �d
�d„ �deƒ�ZsG �d�d„ �deƒ�ZtG �d�d„ �deƒ�ZuG �d�d„ �deƒ�ZvG �d�d„ �deƒ�ZwG �d�d„ �deƒ�ZxG �d�d„ �deƒ�ZyG �d�d„ �deƒ�ZzG �d�d„ �deƒ�Z{G �d�d„ �deƒ�Z|G �d�d„ �deƒ�Z}G �d �d!„ �d!eƒ�Z~G �d"�d#„ �d#eƒ�ZG �d$�d%„ �d%eƒ�Z€G �d&�d'„ �d'eƒ�Z�G �d(�d)„ �d)eƒ�Z‚G �d*�d+„ �d+eƒ�ZƒG �d,�d-„ �d-eƒ�Z„G �d.�d/„ �d/eƒ�Z…G �d0�d1„ �d1eƒ�Z†G �d2�d3„ �d3eƒ�Z‡G �d4�d5„ �d5eƒ�ZˆG �d6�d7„ �d7eƒ�Z‰G �d8�d9„ �d9eƒ�ZŠG �d:�d;„ �d;eƒ�Z‹G �d<�d=„ �d=eƒ�ZŒG �d>�d?„ �d?eƒ�Z�G �d@�dA„ �dAeƒ�ZŽG �dB�dC„ �dCeƒ�Z�G �dD�dE„ �dEeƒ�Z�G �dF�dG„ �dGeƒ�Z‘G �dH�dI„ �dIeƒ�Z’G �dJ�dK„ �dKeƒ�Z“G �dL�dM„ �dMeƒ�Z”G �dN�dO„ �dOeƒ�Z•G �dP�dQ„ �dQeƒ�Z–G �dR�dS„ �dSeƒ�Z—G �dT�dU„ �dUeƒ�Z˜G �dV�dW„ �dWeƒ�Z™G �dX�dY„ �dYeƒ�ZšG �dZ�d[„ �d[eƒ�Z›G �d\�d]„ �d]eƒ�ZœG �d^�d_„ �d_eƒ�Z�G �d`�da„ �daeƒ�ZžG �db�dc„ �dceƒ�ZŸG �dd�de„ �deeƒ�Z G �df�dg„ �dgeƒ�Z¡G �dh�di„ �dieƒ�Z¢G �dj�dk„ �dkeƒ�Z£G �dl�dm„ �dmeƒ�Z¤G �dn�do„ �doeƒ�Z¥G �dp�dq„ �dqeƒ�Z¦G �dr�ds„ �dseƒ�Z§G �dt�du„ �dueƒ�Z¨G �dv�dw„ �dweƒ�Z©G �dx�dy„ �dyeƒ�ZªG �dz�d{„ �d{eƒ�Z«G �d|�d}„ �d}eƒ�Z¬G �d~�d„ �deƒ�Z­G �d€�d�„ �d�eƒ�Z®G �d‚�dƒ„ �dƒeƒ�Z¯G �d„�d…„ �d…eƒ�Z°G �d†�d‡„ �d‡eƒ�Z±G �dˆ�d‰„ �d‰eƒ�Z²G �dŠ�d‹„ �d‹eƒ�Z³G �dŒ�d�„ �d�eƒ�Z´G �dŽ�d�„ �d�eƒ�ZµG �d��d‘„ �d‘eƒ�Z¶G �d’�d“„ �d“eƒ�Z·G �d”�d•„ �d•eƒ�Z¸G �d–�d—„ �d—eƒ�Z¹	 	 	 G �d˜�d™„ �d™eƒ�ZºG �dš�d›„ �d›eƒ�Z»	 G �dœ�d�„ �d�eƒ�Z¼G �dž�dŸ„ �dŸeƒ�Z½	 	 G �d �d¡„ �d¡eƒ�Z¾G �d¢�d£„ �d£eƒ�Z¿G �d¤�d¥„ �d¥eƒ�ZÀG �d¦�d§„ �d§eƒ�ZÁG �d¨�d©„ �d©eƒ�ZÂG �dª�d«„ �d«eƒ�ZÃG �d¬�d­„ �d­eƒ�ZÄG �d®�d¯„ �d¯eƒ�ZÅ	 	 G �d°�d±„ �d±eƒ�ZÆG �d²�d³„ �d³eƒ�ZÇ	 	 	 	 	 	 G �d´�dµ„ �dµeƒ�ZÈG �d¶�d·„ �d·eƒ�ZÉ�d¸�d¹„ �ZÊ�dº�d»„ �ZË�dI�d¼�d½„�ZÌ�d¾�d¿„ �ZÍ�dÀ�dÁ„ �ZÎ�dÂ�dÃ„ �ZÏ�dÄ�dÅ„ �ZÐ�dÆ�dÇ„ �ZÑ�dÈ�dÉ„ �ZÒ�dJ�dË�dÌ„�ZÓ�dÍ�dÎ„ �ZÔ�dÏ�dÐ„ �ZÕ�dÑ�dÒ„ �ZÖ�dÓ�dÔ„ �Z×�dÕ�dÖ„ �ZØ�d×�dØ„ �ZÙ�dÙ�dÚ„ �ZÚ�dÛ�dÜ„ �ZÛ�dÝ�dÞ„ �ZÜ�dß�dà„ �ZÝ�dá�dâ„ �ZÞ�dã�dä„ �Zß�dK�då�dæ„�Zà�dK�dç�dè„�Zá�dK�dé�dê„�Zâ�dë�dì„ �Zã�dí�dî„ �Zä�dï�dð„ �Zå�dñ�dò„ �Zæ�dó�dô„ �Zç�dõ�dö„ �Zè�d÷�dø„ �Zé�dù�dú„ �Zê�dû�dü„ �Zë�dý�dþ„ �Zì�dÿ�d „ �Zí�d�d„ �Zî�d�d„ �Zï�dL�d�d„�Zð�d�d„ �Zñ�d	�d
„ �Zò�dM�d�d„�Zó�dM�d�d„�Zô�dM�d�d„�Zõ�d�d„ �Zö�d�d„ �Z÷�d�d„ �Zø�d�d„ �Zù�d�d„ �Zú�d�d„ �Zû�d�d„ �Zü�d �d!„ �Zý�dN�d"�d#„�Zþ�d$�d%„ �Zÿ�d&�d'„ �Z �d(�d)„ �Z�d*�d+„ �Z�d,�d-„ �Z�d.�d/„ �Z�d0�d1„ �Z�d2�d3„ �Z�d4�d5„ �Z�dO�d7�d8„�ZG �d9�d:„ �d:ƒ�Z	G �d;�d<„ �d<�e	ƒ�Z
G �d=�d>„ �d>�e	ƒ�ZG �d?�d@„ �d@�e	ƒ�ZG �dA�dB„ �dB�e	ƒ�ZG �dC�dD„ �dD�e	ƒ�ZG �dE�dF„ �dF�e	ƒ�ZG �dG�dH„ �dH�e	ƒ�ZdS (P  é    N)ÚdatetimeÚ	timedelta)Ú	transport)Úuuidtup_to_binÚbin_to_stringÚstring_to_bin)	ÚNDRÚNDRCALLÚ	NDRSTRUCTÚNDRENUMÚNDRUNIONÚNDRUniConformantArrayÚ
NDRPOINTERÚNDRUniConformantVaryingArrayÚUNKNOWNDATA)ÚNULLÚBOOLÚBOOLEANÚSTRÚWSTRÚLPWSTRÚWIDESTRÚLONGÚUINTÚULONGÚPULONGÚLPDWORDÚLARGE_INTEGERÚDWORDÚNDRHYPERÚUSHORTÚUCHARÚPCHARÚBYTEÚPBYTEÚUUIDÚGUIDÚSID)Úsystem_errors)ÚEnum)ÚDCERPCExceptionÚRPC_C_AUTHN_GSS_NEGOTIATEÚRPC_C_AUTHN_LEVEL_PKT_PRIVACY)z$484809d6-4239-471b-b5bc-61df8c23ac48ú1.0)z$11899a43-2b68-4a76-92e3-a3d6ad8c26cer-   )z$88143fd0-c28d-4b2b-8fef-8d882f6a9390r-   )z$bde95fdf-eee0-45de-9e12-e5a61cd0d4fer-   )z$497d95a6-2d27-4bf5-9bbd-a6046957133cr-   )z$1257b580-ce2f-4109-82d6-a9459d0bf6bcr-   )z$5ca4a760-ebb1-11cf-8611-00a0245420edr-   é	   é   é€   éA   é   é   é   é   é/   é   é   é   é   é    é(   é   é   é2   é<   é   é
   é   é   é   é   é   é   é@   é   c                   @   s   e Zd Zddd„ZdS )r   Nr   c                 C   sp   |d u r| j j}|dkrt|dd� ztd|  | jd ¡j dd� W d S    tdt| jd ƒ dd� Y d S )NÚ ú )Úendz %sÚData)Ú	__class__Ú__name__ÚprintÚ	enumItemsÚfieldsÚnameÚhex)ÚselfÚmsgÚindent© rY   úŠ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/dcerpc/v5/tsts.pyÚdumpƒ   s   $ zNDRENUM.dump)Nr   )rP   Ú
__module__Ú__qualname__r[   rY   rY   rY   rZ   r   ‚   ó    r   c                   @   ó    e Zd ZdZdZdZdd„ ZdS )ÚTS_WCHAR))ÚActualCountz<L=len(Data)//2))ra   z<Q=len(Data)//2©)rN   ú:c                 C   s$   |dkr| j |  d¡S t | |¡S )NrN   úutf-16le)rS   Údecoder   Ú__getitem__©rV   ÚkeyrY   rY   rZ   rf   ˜   ó   zTS_WCHAR.__getitem__N©rP   r\   r]   Ú	commonHdrÚcommonHdr64Ú	structurerf   rY   rY   rY   rZ   r`   Ž   ó
    r`   c                   @   ó   e Zd ZdeffZdS )Ú
TS_LPWCHARrN   N)rP   r\   r]   r`   ÚreferentrY   rY   rY   rZ   rp   ž   ó    ÿrp   c                   @   r_   )ÚTS_CHAR))ra   z<L=len(Data)))ra   z<Q=len(Data)rb   c                 C   s   |dkr	| j | S t | |¡S )NrN   )rS   r   rf   rg   rY   rY   rZ   rf   ­   s   
zTS_CHAR.__getitem__Nrj   rY   rY   rY   rZ   rs   £   rn   rs   c                   @   ó   e Zd Zdd„ ZdS )ÚSYSTEM_TIMESTAMPc                 C   s<   |dkrt dddƒttt| j| ƒƒd d� S t | |¡S )NrN   iA  r>   rB   )Úmicroseconds)r   r   ÚintÚstrrS   r   rf   rg   rY   rY   rZ   rf   ´   s   (zSYSTEM_TIMESTAMP.__getitem__N©rP   r\   r]   rf   rY   rY   rY   rZ   ru   ³   ó    ru   c                   @   s.   e Zd ZdZdefdefdeffZdd„ ZdS )ÚTS_UNICODE_STRINGa  
    typedef struct _TS_UNICODE_STRING {
        USHORT Length;
        USHORT MaximumLength;
        #ifdef __midl
            [size_is(MaximumLength),length_is(Length)]PWSTR Buffer;
        #else
            PWSTR Buffer;
        #endif
    } TS_UNICODE_STRING;
    ÚLengthÚMaximumLengthÚBufferc                 C   s^   | j d j d dkrdS | j d j d j d }|d | d …  d¡}| d¡r-|d d	… S |S )
Nr~   Ú
ReferentIDr   rK   rN   r|   rd   ú éÿÿÿÿ)rS   re   Úendswith)rV   Ú	rawBufferÚvaluerY   rY   rZ   ÚgetValueÍ   s   
zTS_UNICODE_STRING.getValueN)rP   r\   r]   Ú__doc__r    r   rm   r…   rY   rY   rY   rZ   r{   ¼   s    ýr{   c                   @   ro   )Ú	TS_LPCHARrN   N)rP   r\   r]   rs   rq   rY   rY   rY   rZ   r‡   Ú   rr   r‡   c                   @   rt   )ÚTS_WCHAR_STRIPPEDc                 C   ó*   |dkr| j |  d¡ d¡S t | |¡S ©NrN   rd   r€   )rS   re   Ústripr   rf   rg   rY   rY   rZ   rf   á   ó   zTS_WCHAR_STRIPPED.__getitem__Nry   rY   rY   rY   rZ   rˆ   à   rz   rˆ   c                       s*   e Zd ZdZdd„ Zd‡ fdd„	Z‡  ZS )ÚWIDESTR_STRIPPEDNc                 C   r‰   rŠ   ©rS   re   Úrstripr   rf   rg   rY   rY   rZ   rf   ê   rŒ   zWIDESTR_STRIPPED.__getitem__r   c                    s"   | j d u rtƒ  ||¡S | j d S )Nr=   )ÚlengthÚsuperÚ
getDataLen©rV   ÚdataÚoffset©rO   rY   rZ   r’   ï   s   

zWIDESTR_STRIPPED.getDataLen©r   )rP   r\   r]   r�   rf   r’   Ú__classcell__rY   rY   r–   rZ   r�   è   s    r�   c                   @   rt   )ÚWSTR_STRIPPEDc                 C   r‰   rŠ   rŽ   rg   rY   rY   rZ   rf   õ   rŒ   zWSTR_STRIPPED.__getitem__Nry   rY   rY   rY   rZ   r™   ô   rz   r™   c                   @   ro   )ÚLPWCHAR_STRIPPEDrN   N)rP   r\   r]   r�   rq   rY   rY   rY   rZ   rš   û   rr   rš   c                   @   ó   e Zd ZdZdd„ ZdS )Ú
LONG_ARRAYÚLc                 C   s$   |dkrd  | j| ¡S t | |¡S )NrN   ó    )ÚjoinrS   r   rf   rg   rY   rY   rZ   rf     ri   zLONG_ARRAY.__getitem__N)rP   r\   r]   Úitemrf   rY   rY   rY   rZ   rœ      s    rœ   c                   @   ó   e Zd ZdZdS )ÚUCHAR_ARRAYÚcN)rP   r\   r]   r    rY   rY   rY   rZ   r¢     ó    r¢   c                   @   ro   )ÚLPUCHAR_ARRAYrN   N)rP   r\   r]   r¢   rq   rY   rY   rY   rZ   r¥     rr   r¥   c                   @   r¡   )ÚWCHAR_ARRAY_32r;   N©rP   r\   r]   r�   rY   rY   rY   rZ   r¦     r¤   r¦   c                   @   r¡   )ÚWCHAR_ARRAY_256r2   Nr§   rY   rY   rY   rZ   r¨     r¤   r¨   c                   @   r¡   )ÚWCHAR_ARRAY_33é!   Nr§   rY   rY   rY   rZ   r©     r¤   r©   c                   @   r¡   )ÚWCHAR_ARRAY_21é   Nr§   rY   rY   rY   rZ   r«     r¤   r«   c                   @   r¡   )ÚWCHAR_ARRAY_18é   Nr§   rY   rY   rY   rZ   r­     r¤   r­   c                   @   r¡   )ÚWCHAR_ARRAY_4rD   Nr§   rY   rY   rY   rZ   r¯     r¤   r¯   c                   @   ó   e Zd Zed ZdS )ÚWCHAR_CLIENTNAME_LENGTHr>   N)rP   r\   r]   ÚCLIENTNAME_LENGTHr�   rY   rY   rY   rZ   r±     rz   r±   c                   @   r°   )ÚWCHAR_DOMAIN_LENGTHr>   N)rP   r\   r]   ÚDOMAIN_LENGTHr�   rY   rY   rY   rZ   r³     rz   r³   c                   @   r°   )ÚWCHAR_USERNAME_LENGTHr>   N)rP   r\   r]   ÚUSERNAME_LENGTHr�   rY   rY   rY   rZ   rµ      rz   rµ   c                   @   r°   )ÚWCHAR_PASSWORD_LENGTHr>   N)rP   r\   r]   ÚPASSWORD_LENGTHr�   rY   rY   rY   rZ   r·   "  rz   r·   c                   @   r°   )ÚWCHAR_DIRECTORY_LENGTHr>   N)rP   r\   r]   ÚDIRECTORY_LENGTHr�   rY   rY   rY   rZ   r¹   $  rz   r¹   c                   @   r°   )ÚWCHAR_INITIALPROGRAM_LENGTHr>   N)rP   r\   r]   ÚINITIALPROGRAM_LENGTHr�   rY   rY   rY   rZ   r»   &  rz   r»   c                   @   r°   )ÚWCHAR_CLIENTADDRESS_LENGTHr>   N)rP   r\   r]   ÚCLIENTADDRESS_LENGTHr�   rY   rY   rY   rZ   r½   (  rz   r½   c                   @   r°   )ÚWCHAR_IMEFILENAME_LENGTHr>   N)rP   r\   r]   ÚIMEFILENAME_LENGTHr�   rY   rY   rY   rZ   r¿   *  rz   r¿   c                   @   r°   )ÚWCHAR_CLIENTLICENSE_LENGTHr>   N)rP   r\   r]   ÚCLIENTLICENSE_LENGTHr�   rY   rY   rY   rZ   rÁ   ,  rz   rÁ   c                   @   r°   )ÚWCHAR_CLIENTMODEM_LENGTHr>   N)rP   r\   r]   ÚCLIENTMODEM_LENGTHr�   rY   rY   rY   rZ   rÃ   .  rz   rÃ   c                   @   ó   e Zd ZeZdS )ÚWCHAR_AUDIODRIVENAME_LENGTHN)rP   r\   r]   ÚAUDIODRIVENAME_LENGTHr�   rY   rY   rY   rZ   rÆ   0  r¤   rÆ   c                   @   rÅ   )ÚWCHAR_CLIENT_PRODUCT_ID_LENGTHN)rP   r\   r]   ÚCLIENT_PRODUCT_ID_LENGTHr�   rY   rY   rY   rZ   rÈ   2  r¤   rÈ   c                   @   r°   )ÚWCHAR_NASIFILESERVER_LENGTHr>   N)rP   r\   r]   ÚNASIFILESERVER_LENGTHr�   rY   rY   rY   rZ   rÊ   4  rz   rÊ   c                   @   r°   )ÚWCHAR_CALLBACK_LENGTHr>   N)rP   r\   r]   ÚCALLBACK_LENGTHr�   rY   rY   rY   rZ   rÌ   6  rz   rÌ   c                   @   rÅ   )ÚWCHAR_MAX_BR_NAMEN)rP   r\   r]   ÚMAX_BR_NAMEr�   rY   rY   rY   rZ   rÎ   8  r¤   rÎ   c                   @   r°   )ÚWCHAR_WINSTATIONCOMMENT_LENGTHr>   N)rP   r\   r]   ÚWINSTATIONCOMMENT_LENGTHr�   rY   rY   rY   rZ   rÐ   :  rz   rÐ   c                   @   s   e Zd Zddd„Zdd„ ZdS )ÚDCERPCSessionErrorNc                 C   s   t  | |||¡ d S ©N)r*   Ú__init__)rV   Úerror_stringÚ
error_codeÚpacketrY   rY   rZ   rÔ   B  ó   zDCERPCSessionError.__init__c                 C   sJ   | j d@ }|tjv r tj| d }tj| d }d| j ||f S d| j  S )Niÿÿ  r   r>   z'TSTS SessionError: code: 0x%x - %s - %sz+TSTS SessionError: unknown error code: 0x%x)rÖ   r(   ÚERROR_MESSAGES)rV   rh   Úerror_msg_shortÚerror_msg_verboserY   rY   rZ   Ú__str__D  s   


zDCERPCSessionError.__str__)NNN)rP   r\   r]   rÔ   rÜ   rY   rY   rY   rZ   rÒ   A  s    
rÒ   c                 C   s@   |d u r
t | ƒd }t | ƒ|ksJ dƒ‚| d|t | ƒ  7 } | S )Nr>   zInvalid data size!r€   )Úlen)r”   ÚsizerY   rY   rZ   ÚZEROPADM  s
   rß   c                 C   s   | d8 } | d } | S )Nl     }*{Gíi€–˜ rY   )ÚtrY   rY   rZ   ÚgetUnixTimeT  s   rá   c                 C   s   | j j| jS rÓ   )rR   Ú_value2member_map_Ú_name_)Úenumrh   rY   rY   rZ   Ú
enum2valueY  ó   rå   c                 C   s   | sdS t | d� ¡ S )NrK   )r”   )Ú
BINARY_SIDÚformatCanonical)ÚrawSidrY   rY   rZ   Úbinary_sid_to_string]  s   rê   c                   @   s   e Zd Zdd„ Zdd„ ZdS )r'   c                 C   s–   dddddddddd	d
œ
}|  d¡r't| d¡ƒdkr'd t| d¡d ƒ¡S |  d¡rAt| d¡ƒdkrAd t| d¡d ƒ¡S ||v rI|| S |S )NÚSELFzTERMINAL SERVER USERzAuthenticated UsersÚ
RESTRICTEDzThis OrganizationÚIUSRÚSYSTEMzLOCAL SERVICEzNETWORK SERVICE)
zS-1-5-10zS-1-5-13zS-1-5-11zS-1-5-12zS-1-5-14zS-1-5-15zS-1-5-17zS-1-5-18zS-1-5-19zS-1-5-20zS-1-5-90-0-ú-rF   zDWM-{}r�   zS-1-5-96-0-zUMFD-{})Ú
startswithrÝ   ÚsplitÚformatrw   )rV   ÚsidÚ	knownSidsrY   rY   rZ   Ú	known_sidc  s$   özSID.known_sidc                 C   s8   |dkrt | j| ƒ}t|ƒsdS |  |¡S t | |¡S )NrN   rK   )rê   rS   rÝ   rõ   r   rf   )rV   rh   ró   rY   rY   rZ   rf   x  s   
zSID.__getitem__N)rP   r\   r]   rõ   rf   rY   rY   rY   rZ   r'   b  s    r'   c                   @   sN   e Zd ZdefdeffZdd„ Zdd„ Zdd„ Zddd„Z	dd„ Z
dd„ Zd	S )Úcontext_handleÚcontext_handle_attributesÚcontext_handle_uuidc                 C   ó   t | d ƒS ©Nrø   ©r   ©rV   rY   rY   rZ   ÚgetUUIDŠ  ó   zcontext_handle.getUUIDc                 C   s   t | d ƒ| d fS )Nrø   r÷   rû   rü   rY   rY   rZ   ÚtupleŒ  rØ   zcontext_handle.tuplec                 C   s"   t |d ƒ|d | d< | d< d S )Nr   r>   rø   r÷   )r   )rV   ÚtuprY   rY   rZ   Ú
from_tupleŽ  s   "zcontext_handle.from_tupleNFc                 C   s   t  | ||¡ d| d< d S )Nó                   rø   )r
   rÔ   )rV   r”   ÚisNDR64rY   rY   rZ   rÔ   �  s   zcontext_handle.__init__c                 C   s   | d dkS )Nrø   r  rY   rü   rY   rY   rZ   ÚisNull“  rþ   zcontext_handle.isNullc                 C   rù   rú   rû   rü   rY   rY   rZ   rÜ   •  rþ   zcontext_handle.__str__)NF)rP   r\   r]   r   r%   rm   rý   rÿ   r  rÔ   r  rÜ   rY   rY   rY   rZ   rö   …  s    þ
rö   c                   @   r›   )Úhandle_t))rN   z20s=b""c                 C   s   | j du rdS dS )NTrG   rD   )Ú_isNDR64rü   rY   rY   rZ   ÚgetAlignmentœ  s   
zhandle_t.getAlignmentN)rP   r\   r]   rm   r  rY   rY   rY   rZ   r  ˜  s    r  c                   @   ro   )ÚpHandlerN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r  ¥  rr   r  c                   @   ó   e Zd ZG dd„ deƒZdS )ÚMSGBOX_ENUMc                   @   s0   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
S )zMSGBOX_ENUM.enumItemsrC   r=   rE   r9   r>   rD   rF   i}  i }  N)rP   r\   r]   ÚIDABORTÚIDCANCELÚIDIGNOREÚIDNOÚIDOKÚIDRETRYÚIDYESÚIDASYNCÚ	IDTIMEOUTrY   rY   rY   rZ   rR   º  s    rR   N©rP   r\   r]   r)   rR   rY   rY   rY   rZ   r
  ¹  ó    r
  c                   @   ó    e Zd ZdZG dd„ deƒZdS )ÚShutdownFlags©)rN   z<Lc                   @   s   e Zd ZdZdZdZdZdS )zShutdownFlags.enumItemsr>   r=   rD   rG   N)rP   r\   r]   Ú
WSD_LOGOFFÚWSD_SHUTDOWNÚ
WSD_REBOOTÚWSD_POWEROFFrY   rY   rY   rZ   rR   É  s
    rR   N©rP   r\   r]   rm   r)   rR   rY   rY   rY   rZ   r  Å  ó    r  c                   @   ó$   e Zd ZdZdZdZdZdZdZdS )ÚHotKeyModifiers))rN   z<Hr   r>   r=   rD   rG   N)	rP   r\   r]   rm   ÚNONEÚAltÚControlÚShiftÚ
WindowsKeyrY   rY   rY   rZ   r   Ï  s    r   c                   @   r  )Ú
EventFlagsr  c                   @   s<   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdS )zEventFlags.enumItemsr   r>   r=   rD   rG   r8   r;   rI   r0   r2   iÿÿÿl        N)rP   r\   r]   ÚWEVENT_NONEÚWEVENT_CREATEÚWEVENT_DELETEÚWEVENT_RENAMEÚWEVENT_CONNECTÚWEVENT_DISCONNECTÚWEVENT_LOGONÚWEVENT_LOGOFFÚWEVENT_STATECHANGEÚWEVENT_LICENSEÚ
WEVENT_ALLÚWEVENT_FLUSHrY   rY   rY   rZ   rR   Þ  s    rR   Nr  rY   rY   rY   rZ   r&  Ú  r  r&  c                   @   r  )ÚADDRESSFAMILY_ENUMr  c                   @   sŒ   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!dZ"dS ) zADDRESSFAMILY_ENUM.enumItemsr8   é   r¬   rB   rE   r7   i  r.   é   r/   rG   é   é   é   rC   r=   é   rF   é   r9   r5   é   r4   é   i   rD   rH   r>   r   r®   N)#rP   r\   r]   Ú	AppleTalkÚAtmÚBanyanÚCcittÚChaosÚClusterÚControllerAreaNetworkÚDataKitÚDataLinkÚDecNetÚEcmaÚFireFoxÚHyperChannelÚ	Ieee12844ÚImpLinkÚInterNetworkÚInterNetworkV6ÚIpxÚIrdaÚIsoÚLatÚMaxÚNetBiosÚNetworkDesignersÚNSÚOsiÚPacketÚPupÚSnaÚUnixÚUnspecifiedÚ	VoiceViewrY   rY   rY   rZ   rR   ð  sB    rR   Nr  rY   rY   rY   rZ   r3  ì  r  r3  c                   @   r°   )ÚWINSTATIONNAMEr>   N)rP   r\   r]   ÚWINSTATIONNAME_LENGTHr�   rY   rY   rY   rZ   r]    rz   r]  c                   @   ó   e Zd Zddd„ZdS )ÚDLLNAMEr   c                 C   ó   t d S ©Nr>   )ÚDLLNAME_LENGTHr“   rY   rY   rZ   r’     ó   zDLLNAME.getDataLenNr—   ©rP   r\   r]   r’   rY   rY   rY   rZ   r`    r^   r`  c                   @   ro   )ÚPDLLNAMErN   N)rP   r\   r]   r`  rq   rY   rY   rY   rZ   rf    rr   rf  c                   @   r_  )Ú
DEVICENAMEr   c                 C   ra  rb  )ÚDEVICENAME_LENGTHr“   rY   rY   rZ   r’   "  rd  zDEVICENAME.getDataLenNr—   re  rY   rY   rY   rZ   rg  !  r^   rg  c                   @   ro   )ÚPDEVICENAMErN   N)rP   r\   r]   rg  rq   rY   rY   rY   rZ   ri  %  rr   ri  c                   @   r_  )ÚCLIENTDATANAMEr   c                 C   ra  rb  )ÚCLIENTDATANAME_LENGTHr“   rY   rY   rZ   r’   -  rd  zCLIENTDATANAME.getDataLenNr—   re  rY   rY   rY   rZ   rj  ,  r^   rj  c                   @   ro   )ÚPCLIENTDATANAMErN   N)rP   r\   r]   rj  rq   rY   rY   rY   rZ   rl  0  rr   rl  c                   @   r	  )ÚWINSTATIONINFOCLASSc                   @   s°   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZdZ dZ!d Z"d!Z#d"Z$d#Z%d$Z&d%Z'd&Z(d'Z)d(Z*d)Z+d*S )+zWINSTATIONINFOCLASS.enumItemsr   r>   r=   rC   rD   rE   rF   r9   rG   r.   rB   rH   r/   r5  r5   r7  r8   r4   r®   r6  r3   r¬   r4  r9  r7   r8  r:  é   r<  r;  r:   é   r;   rª   é"   é#   é$   é%   é&   é'   r<   N),rP   r\   r]   ÚWinStationCreateDataÚWinStationConfigurationÚWinStationPdParamsÚWinStationWdÚWinStationPdÚWinStationPrinterÚWinStationClientÚWinStationModulesÚWinStationInformationÚWinStationTraceÚWinStationBeepÚWinStationEncryptionOffÚWinStationEncryptionPermÚWinStationNtSecurityÚWinStationUserTokenÚWinStationUnused1ÚWinStationVideoDataÚWinStationInitialProgramÚWinStationCdÚWinStationSystemTraceÚWinStationVirtualDataÚWinStationClientDataÚWinStationSecureDesktopEnterÚWinStationSecureDesktopExitÚ"WinStationLoadBalanceSessionTargetÚWinStationLoadIndicatorÚWinStationShadowInfoÚWinStationDigProductIdÚWinStationLockedStateÚWinStationRemoteAddressÚWinStationIdleTimeÚWinStationLastReconnectTypeÚWinStationDisallowAutoReconnectÚWinStationUnused2ÚWinStationUnused3ÚWinStationUnused4ÚWinStationUnused5ÚWinStationReconnectedFromIdÚWinStationEffectsPolicyÚWinStationTypeÚWinStationInformationExrY   rY   rY   rZ   rR   8  sT    rR   Nr  rY   rY   rY   rZ   rm  7  r  rm  c                   @   r  )ÚWINSTATIONSTATECLASSr  c                   @   s4   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdS )zWINSTATIONSTATECLASS.enumItemsr   r>   r=   rC   rD   rE   rF   r9   rG   r.   N)rP   r\   r]   ÚState_ActiveÚState_ConnectedÚState_ConnectQueryÚState_ShadowÚState_DisconnectedÚ
State_IdleÚState_ListenÚState_ResetÚ
State_DownÚ
State_InitrY   rY   rY   rZ   rR   h  s    rR   Nr  rY   rY   rY   rZ   rŸ  d  r  rŸ  c                   @   r	  )ÚSDCLASSc                   @   ó    e Zd ZdZdZdZdZdZdS )zSDCLASS.enumItemsr   r>   r=   rC   rD   N)rP   r\   r]   ÚSdNoneÚ	SdConsoleÚ	SdNetworkÚSdAsyncÚSdOemTransportrY   rY   rY   rZ   rR   v  ó    rR   Nr  rY   rY   rY   rZ   rª  u  r  rª  c                   @   r	  )ÚSHADOWCLASSc                   @   r«  )zSHADOWCLASS.enumItemsr   r>   r=   rC   rD   N)rP   r\   r]   ÚShadow_DisableÚShadow_EnableInputNotifyÚShadow_EnableInputNoNotifyÚShadow_EnableNoInputNotifyÚShadow_EnableNoInputNoNotifyrY   rY   rY   rZ   rR     r±  rR   Nr  rY   rY   rY   rZ   r²  ~  r  r²  c                   @   r	  )ÚRECONNECT_TYPEc                   @   ó   e Zd ZdZdZdZdS )zRECONNECT_TYPE.enumItemsr   r>   r=   N)rP   r\   r]   ÚNeverReconnectedÚManualReconnectÚAutoReconnectrY   rY   rY   rZ   rR   ˆ  ó    rR   Nr  rY   rY   rY   rZ   r¸  ‡  r  r¸  c                   @   ro   )ÚPRECONNECT_TYPErN   N)rP   r\   r]   r¸  rq   rY   rY   rY   rZ   r¾  �  rr   r¾  c                   @   ro   )ÚUINT_PTRrN   N)rP   r\   r]   r   rq   rY   rY   rY   rZ   r¿  –  rr   r¿  c                   @   r	  )ÚSESSIONTYPEc                   @   ó(   e Zd ZdZdZdZdZdZdZdZ	dS )	zSESSIONTYPE.enumItemsr   r>   r=   rC   rD   rE   rF   N)
rP   r\   r]   ÚSESSIONTYPE_UNKNOWNÚSESSIONTYPE_SERVICESÚSESSIONTYPE_LISTENERÚSESSIONTYPE_REGULARDESKTOPÚSESSIONTYPE_ALTERNATESHELLÚSESSIONTYPE_REMOTEAPPÚSESSIONTYPE_MEDIACENTEREXTrY   rY   rY   rZ   rR   �  s    rR   Nr  rY   rY   rY   rZ   rÀ  œ  r  rÀ  c                   @   r	  )ÚSHADOW_CONTROL_REQUESTc                   @   r¹  )z SHADOW_CONTROL_REQUEST.enumItemsr   r>   r=   N)rP   r\   r]   ÚSHADOW_CONTROL_REQUEST_VIEWÚ"SHADOW_CONTROL_REQUEST_TAKECONTROLÚSHADOW_CONTROL_REQUEST_CountrY   rY   rY   rZ   rR   ¨  r½  rR   Nr  rY   rY   rY   rZ   rÉ  §  r  rÉ  c                   @   r	  )ÚSHADOW_PERMISSION_REQUESTc                   @   r¹  )z#SHADOW_PERMISSION_REQUEST.enumItemsr   r>   r=   N)rP   r\   r]   Ú SHADOW_PERMISSION_REQUEST_SILENTÚ+SHADOW_PERMISSION_REQUEST_REQUESTPERMISSIONÚSHADOW_PERMISSION_REQUEST_CountrY   rY   rY   rZ   rR   ¯  r½  rR   Nr  rY   rY   rY   rZ   rÍ  ®  r  rÍ  c                   @   r	  )ÚSHADOW_REQUEST_RESPONSEc                   @   rÁ  )	z!SHADOW_REQUEST_RESPONSE.enumItemsr   r>   r=   rC   rD   rE   rF   N)
rP   r\   r]   ÚSHADOW_REQUEST_RESPONSE_ALLOWÚSHADOW_REQUEST_RESPONSE_DECLINEÚ2SHADOW_REQUEST_RESPONSE_POLICY_PERMISSION_REQUIREDÚ'SHADOW_REQUEST_RESPONSE_POLICY_DISABLEDÚ(SHADOW_REQUEST_RESPONSE_POLICY_VIEW_ONLYÚ<SHADOW_REQUEST_RESPONSE_POLICY_VIEW_ONLY_PERMISSION_REQUIREDÚ2SHADOW_REQUEST_RESPONSE_SESSION_ALREADY_CONTROLLEDrY   rY   rY   rZ   rR   ¶  s    rR   Nr  rY   rY   rY   rZ   rÑ  µ  r  rÑ  c                   @   r	  )ÚSESSION_FILTERc                   @   r¡   )zSESSION_FILTER.enumItemsr   N)rP   r\   r]   ÚSF_SERVICES_SESSION_POPUPrY   rY   rY   rZ   rR   Â  r¤   rR   Nr  rY   rY   rY   rZ   rÙ  Á  r  rÙ  c                   @   r	  )ÚPROTOCOLSTATUS_INFO_TYPEc                   @   ó   e Zd ZdZdZdS )z"PROTOCOLSTATUS_INFO_TYPE.enumItemsr   r>   N)rP   r\   r]   ÚPROTOCOLSTATUS_INFO_BASICÚPROTOCOLSTATUS_INFO_EXTENDEDrY   rY   rY   rZ   rR   Ç  s    rR   Nr  rY   rY   rY   rZ   rÛ  Æ  r  rÛ  c                   @   r	  )ÚQUERY_SESSION_DATA_TYPEc                   @   r  )z!QUERY_SESSION_DATA_TYPE.enumItemsr   r>   r=   rC   rD   rE   N)	rP   r\   r]   ÚQUERY_SESSION_DATA_MODULEÚQUERY_SESSION_DATA_WDCONFIGÚQUERY_SESSION_DATA_VIRTUALDATAÚQUERY_SESSION_DATA_LICENSEÚQUERY_SESSION_DATA_DEVICEIDÚ%QUERY_SESSION_DATA_LICENSE_VALIDATIONrY   rY   rY   rZ   rR   Í  s    rR   Nr  rY   rY   rY   rZ   rß  Ì  r  rß  c                   @   ó"   e Zd ZdefdefdeffZdS )ÚSESSIONENUM_LEVEL1Ú	SessionIdÚStateÚNameN©rP   r\   r]   r   rŸ  r©   rm   rY   rY   rY   rZ   rç  ×  ó
    ý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fZ	dS )ÚSESSIONENUM_LEVEL2rè  ré  rê  ÚSourceÚbFullDesktopÚSessionTypeN)
rP   r\   r]   r   rŸ  r©   r   r   r&   rm   rY   rY   rY   rZ   rí  ß  s    ú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fZ
d	S )
ÚSESSIONENUM_LEVEL3rè  ré  rê  rî  rï  rð  ÚProtoDataSizeÚpProtocolDataN)rP   r\   r]   r   rŸ  r©   r   r   r&   r!   rm   rY   rY   rY   rZ   rñ  ê  ó    ørñ  c                   @   s.   e Zd ZdeffZdefdefdefdœZdS )ÚSessionInfoÚtagÚSessionEnum_Level1ÚSessionEnum_Level2ÚSessionEnum_Level3)r>   r=   rC   N)	rP   r\   r]   r   rk   rç  rí  rñ  ÚunionrY   rY   rY   rZ   rõ  ø  s    ÿ
ýrõ  c                   @   ó   e Zd ZdefdeffZdS )ÚSessionInfo_STRUCTÚLevelrõ  N)rP   r\   r]   r   rõ  rm   rY   rY   rY   rZ   rü    ó    þrü  c                   @   rÅ   )ÚSESSIONENUMN)rP   r\   r]   rü  r    rY   rY   rY   rZ   rÿ  	  r¤   rÿ  c                   @   ro   )ÚPSESSIONENUMrN   N)rP   r\   r]   rÿ  rq   rY   rY   rY   rZ   r     rr   r   c                   @   ræ  )ÚEXECENVDATA_LEVEL1Ú	ExecEnvIdré  ÚSessionNameNrë  rY   rY   rY   rZ   r    rì  r  c                   @   ro   )ÚPEXECENVDATA_LEVEL1rN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r    rr   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fZd	S )
ÚEXECENVDATA_LEVEL2r  ré  r  ÚAbsSessionIdÚHostNameÚUserNameÚ
DomainNameÚFarmNameNrë  rY   rY   rY   rZ   r  #  rô  r  c                   @   ro   )ÚPEXECENVDATA_LEVEL2rN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r  .  rr   r  c                   @   ó(   e Zd ZdeffZdefdefdœZdS )ÚExecEnvDatarö  ÚExecEnvEnum_Level1ÚExecEnvEnum_Level2)r>   r=   N)rP   r\   r]   r   rk   r  r  rú  rY   rY   rY   rZ   r  3  ó    ÿ
þr  c                   @   rû  )ÚExecEnvData_STRUCTrý  r  N)rP   r\   r]   r   r  rm   rY   rY   rY   rZ   r  <  rþ  r  c                   @   rÅ   )ÚEXECENVDATAN)rP   r\   r]   r  r    rY   rY   rY   rZ   r  C  r¤   r  c                   @   ro   )ÚPEXECENVDATArN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r  F  rr   r  c                   @   r¡   )ÚEXECENVDATAEX_LEVEL1a2  
        structure = (
            ('ExecEnvId', LONG),
            ('State', WINSTATIONSTATECLASS),
            ('AbsSessionId', LONG),
            ('pszSessionName', WIDESTR),
            ('pszHostName', WIDESTR),
            ('pszUserName', WIDESTR),
            ('pszFarmName', WIDESTR),
        )
    N)rP   r\   r]   r†   rY   rY   rY   rZ   r  M  s    r  c                   @   ó"   e Zd ZdeffZddefiZdS )ÚExecEnvDataExrö  r>   r  N)rP   r\   r]   r   rk   r  rú  rY   rY   rY   rZ   r  ]  ó
    ÿÿr  c                   @   rÅ   )ÚEXECENVDATAEXN)rP   r\   r]   r  r    rY   rY   rY   rZ   r  f  r¤   r  c                   @   ro   )ÚPEXECENVDATAEXrN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r  i  rr   r  c                   @   ræ  )ÚLISTENERENUM_LEVEL1ÚIdÚ
bListeningrê  N)rP   r\   r]   r   r   r©   rm   rY   rY   rY   rZ   r  o  rì  r  c                   @   r  )ÚListenerInforö  r>   ÚListenerEnum_Level1N)rP   r\   r]   r   rk   r  rú  rY   rY   rY   rZ   r  w  r  r  c                   @   rû  )ÚListenerInfo_STRUCTrý  r  N)rP   r\   r]   r   r  rm   rY   rY   rY   rZ   r    rþ  r  c                   @   rÅ   )ÚLISTENERENUMN)rP   r\   r]   r  r    rY   rY   rY   rZ   r   †  r¤   r   c                   @   ro   )ÚPLISTENERENUMrN   N)rP   r\   r]   r   rq   rY   rY   rY   rZ   r!  ‰  rr   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fZd	S )
ÚLSMSESSIONINFORMATIONÚpszUserNameÚ	pszDomainÚpszTerminalNameÚSessionStateÚDesktopLockedÚConnectTimeÚDisconnectTimeÚ	LogonTimeN)rP   r\   r]   rš   rŸ  r   ru   rm   rY   rY   rY   rZ   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fZd	S )
ÚTS_SYSTEMTIMEÚwYearÚwMonthÚ
wDayOfWeekÚwDayÚwHourÚwMinuteÚwSecondÚwMillisecondsN)rP   r\   r]   r    rm   rY   rY   rY   rZ   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fZdS )	ÚTS_TIME_ZONE_INFORMATIONÚBiasÚStandardNameÚStandardDateÚStandardBiasÚDaylightNameÚDaylightDateÚDaylightBiasN)rP   r\   r]   r   r¦   r+  rm   rY   rY   rY   rZ   r4  ©  s    ùr4  c                   @   s:  e Zd ZG dd„ deƒZg 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‘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‘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‘d!ef‘d"ef‘d#ef‘d$ef‘d%ef‘R Zd&S )'ÚWINSTATIONCLIENTc                   @   r›   )zWINSTATIONCLIENT.FLAGS))Úflagsz6s=b""c                 C   st   |dkr4t  | j| dd … d¡}ddddddddddddddœ}|D ]}t|d@ ƒ||< |dL }q#|S t | |¡S )Nr=  r=   ÚlittleF)Ú	fTextOnlyÚfDisableCtrlAltDelÚfMouseÚfDoubleClickDetectÚfINetClientÚfPromptForPasswordÚfMaximizeShellÚfEnableWindowsKeyÚfRemoteConsoleAudioÚfPasswordIsScPinÚfNoAudioPlaybackÚfUsingSavedCredsÚfRestrictedLogonr>   )rw   Ú
from_bytesrS   Úboolr   rf   )rV   rh   ÚflagsIntÚkeysÚkrY   rY   rZ   rf   ¼  s*   ô
z"WINSTATIONCLIENT.FLAGS.__getitem__N©rP   r\   r]   rm   rf   rY   rY   rY   rZ   ÚFLAGS·  ó    rR  r=  Ú
ClientNameÚDomainr  ÚPasswordÚWorkDirectoryÚInitialProgramÚSerialNumberÚEncryptionLevelÚClientAddressFamilyÚClientAddressÚHResÚVResÚ
ColorDepthÚProtocolTypeÚKeyboardLayoutÚKeyboardTypeÚKeyboardSubTypeÚKeyboardFunctionKeyÚimeFileNameÚClientDirectoryÚClientLicenseÚClientModemÚClientBuildNumberÚClientHardwareIdÚClientProductIdÚOutBufCountHostÚOutBufCountClientÚOutBufLengthÚAudioDriverNameÚClientTimeZoneÚClientSessionIdÚclientDigProductIdÚPerformanceFlagsÚActiveInputLocaleN)rP   r\   r]   r
   rR  r±   r³   rµ   r·   r¹   r»   r   r#   r3  r½   r    r¿   rÁ   rÃ   rÆ   r4  rÈ   rm   rY   rY   rY   rZ   r<  ¶  s’    þýüûúùø	÷
öõôóòñðïîíìëêéèçæåäãâá à!ß"Þ#Ý$
Ür<  c                   @   ro   )ÚPWINSTATIONCLIENTrN   N)rP   r\   r]   r<  rq   rY   rY   rY   rZ   ru  û  rr   ru  c                   @   rû  )ÚTS_COUNTER_HEADERÚdwCounterIDÚbResultN)rP   r\   r]   r   r   rm   rY   rY   rY   rZ   rv    rþ  rv  c                   @   ræ  )Ú
TS_COUNTERÚcounterHeadÚdwValueÚ	startTimeN)rP   r\   r]   rv  r   r   rm   rY   rY   rY   rZ   ry    rì  ry  c                   @   rÅ   )ÚTS_COUNTER_ARRAYN)rP   r\   r]   ry  r    rY   rY   rY   rZ   r}    r¤   r}  c                   @   ro   )ÚPTS_COUNTERrN   N)rP   r\   r]   r}  rq   rY   rY   rY   rZ   r~    rr   r~  c                   @   r  )ÚSESSIONFLAGSr  c                   @   r¹  )zSESSIONFLAGS.enumItemsì   ÿÿ r   r>   N)rP   r\   r]   ÚWTS_SESSIONSTATE_UNKNOWNÚWTS_SESSIONSTATE_LOCKÚWTS_SESSIONSTATE_UNLOCKrY   rY   rY   rZ   rR     r½  rR   Nr  rY   rY   rY   rZ   r    r  r  c                   @   sR   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de
ffZdS )ÚLSM_SESSIONINFO_EX_LEVEL1r&  ÚSessionFlagsr  r	  r  r(  r)  r*  ÚLastInputTimeÚProtocolDataSizeÚProtocolDataN)rP   r\   r]   rŸ  r  r©   r­   r«   ru   r   r‡   rm   rY   rY   rY   rZ   r„  !  s    õr„  c                   @   r  )ÚLSM_SESSIONINFO_EXrö  r>   ÚLSM_SessionInfo_Level1N)rP   r\   r]   r   rk   r„  rú  rY   rY   rY   rZ   r‰  1  r  r‰  c                   @   ro   )ÚPLSMSESSIONINFORMATION_EXrN   N)rP   r\   r]   r‰  rq   rY   rY   rY   rZ   r‹  ;  rr   r‹  c                   @   r  )ÚTNotificationIdr  c                   @   sD   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdS )zTNotificationId.enumItemsr   r>   r=   rD   rG   r8   r;   rI   r0   r2   rJ   rA   i   r€  N)rP   r\   r]   ÚWTS_NOTIFY_NONEÚWTS_NOTIFY_CREATEÚWTS_NOTIFY_CONNECTÚWTS_NOTIFY_DISCONNECTÚWTS_NOTIFY_LOGONÚWTS_NOTIFY_LOGOFFÚWTS_NOTIFY_SHADOW_STARTÚWTS_NOTIFY_SHADOW_STOPÚWTS_NOTIFY_TERMINATEÚWTS_NOTIFY_CONSOLE_CONNECTÚWTS_NOTIFY_CONSOLE_DISCONNECTÚWTS_NOTIFY_LOCKÚWTS_NOTIFY_UNLOCKÚWTS_NOTIFY_ALLrY   rY   rY   rZ   rR   E  s    rR   Nr  rY   rY   rY   rZ   rŒ  A  r  rŒ  c                   @   rû  )ÚSESSION_CHANGErè  rŒ  N)rP   r\   r]   r   rŒ  rm   rY   rY   rY   rZ   r›  V  rþ  r›  c                   @   rÅ   )ÚSESSION_CHANGE_ARRAYN)rP   r\   r]   r›  r    rY   rY   rY   rZ   rœ  \  r¤   rœ  c                   @   ro   )ÚPSESSION_CHANGErN   N)rP   r\   r]   rœ  rq   rY   rY   rY   rZ   r�  _  rr   r�  c                   @   r  )ÚCALLBACKCLASSr  c                   @   r¹  )zCALLBACKCLASS.enumItemsr   r>   r=   N)rP   r\   r]   ÚCallback_DisableÚCallback_RovingÚCallback_FixedrY   rY   rY   rZ   rR   j  r½  rR   Nr  rY   rY   rY   rZ   rž  f  r  rž  c                   @   s’   e Zd ZG dd„ deƒ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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fZdS )Ú
USERCONFIGc                   @   r›   )zUSERCONFIG.FLAGS))r=  z7s=b""c                 C   s~   |dkr9t  | j| d d … d¡}g d¢}i }|D ]\}}|dkr(|d@ ||< n
|d|> d @ ||< ||L }q|S t | |¡S )Nr=  r>  )*)ÚfInheritAutoLogonr>   )ÚfInheritResetBrokenr>   )ÚfInheritReconnectSamer>   )ÚfInheritInitialProgramr>   )ÚfInheritCallbackr>   )ÚfInheritCallbackNumberr>   )ÚfInheritShadowr>   )ÚfInheritMaxSessionTimer>   )ÚfInheritMaxDisconnectionTimer>   )ÚfInheritMaxIdleTimer>   )ÚfInheritAutoClientr>   )ÚfInheritSecurityr>   )rD  r>   )ÚfResetBrokenr>   )ÚfReconnectSamer>   )ÚfLogonDisabledr>   )ÚfWallPaperDisabledr>   )ÚfAutoClientDrivesr>   )ÚfAutoClientLptsr>   )ÚfForceClientLptDefr>   )ÚfRequireEncryptionr>   )ÚfDisableEncryptionr>   )ÚfUnused1r>   )ÚfHomeDirectoryMapRootr>   )ÚfUseDefaultGinar>   )ÚfCursorBlinkDisabledr>   )ÚfPublishedAppr>   )ÚfHideTitleBarr>   )Ú	fMaximizer>   )ÚfDisableCpmr>   )ÚfDisableCdmr>   )ÚfDisableCcmr>   )ÚfDisableLPTr>   )ÚfDisableClipr>   )ÚfDisableExer>   )ÚfDisableCamr>   )ÚfDisableAutoReconnectr>   )r_  rC   )ÚfInheritColorDepthr>   )ÚfErrorInvalidProfiler>   )rH  r>   )ÚfDisablePNPRedirr>   r>   )rw   rL  rS   r   rf   )rV   rh   rN  ÚtmprO  rP  ÚbitsrY   rY   rZ   rf   v  s   +
zUSERCONFIG.FLAGS.__getitem__NrQ  rY   rY   rY   rZ   rR  q  rS  rR  r=  r  rU  rV  rW  rX  ÚCallbackNumberÚCallbackÚShadowÚMaxConnectionTimeÚMaxDisconnectionTimeÚMaxIdleTimera  ÚMinEncryptionLevelÚNWLogonServerÚPublishedNameÚWFProfilePathÚ	WFHomeDirÚWFHomeDirDriveN)rP   r\   r]   r
   rR  rµ   r³   r·   r¹   r»   rÌ   rž  r²  r   r#   rÊ   rÎ   r¯   rm   rY   rY   rY   rZ   r¢  p  s,    Aìr¢  c                   @   r¡   )ÚOEMId))rØ  z4s=""N©rP   r\   r]   rm   rY   rY   rY   rZ   rØ  È  r¤   rØ  c                   @   s$   e Zd Z	 defdefdeffZdS )ÚWINSTATIONCONFIGÚCommentÚUserrØ  N)rP   r\   r]   rÐ   r¢  rØ  rm   rY   rY   rY   rZ   rÚ  Í  s    ýrÚ  c                   @   ro   )ÚPWINSTATIONCONFIGrN   N)rP   r\   r]   rÚ  rq   rY   rY   rY   rZ   rÝ  Ô  rr   rÝ  c                   @   ó   e Zd ZdS )ÚPROTOCOLCOUNTERSN©rP   r\   r]   rY   rY   rY   rZ   rß  Ú  ó    rß  c                   @   rÞ  )ÚCACHE_STATISTICSNrà  rY   rY   rY   rZ   râ  ß  rá  râ  c                   @   rÞ  )ÚPROTOCOLSTATUSNrà  rY   rY   rY   rZ   rã  ã  rá  rã  c                   @   ro   )ÚPPROTOCOLSTATUSrN   N)rP   r\   r]   rã  rq   rY   rY   rY   rZ   rä  æ  rr   rä  c                       s    e Zd ZdZ‡ fdd„Z‡  ZS )ÚIPv4ADDRESSr  c                    sN   |dkr!| j | }g }|r|t|d@ ƒg7 }|dL }|sd |¡S tƒ  |¡S )NrN   éÿ   rG   Ú.)rS   rx   rŸ   r‘   rf   )rV   rh   ÚxÚyr–   rY   rZ   rf   ð  s   
þ
zIPv4ADDRESS.__getitem__)rP   r\   r]   rm   rf   r˜   rY   rY   r–   rZ   rå  ì  r  rå  c                   @   s8   e Zd ZG dd„ deƒZdefdefdefdeffZdS )Ú!RCM_REMOTEADDRESS_UNION_CASE_IPV4c                   @   r¡   )z(RCM_REMOTEADDRESS_UNION_CASE_IPV4._4CHAR))Úsin_zeroz4s=b""NrÙ  rY   rY   rY   rZ   Ú_4CHARü  r¤   rì  Úsin_portÚ	sin_port2Úin_addrrë  N)rP   r\   r]   r
   rì  r    rå  rm   rY   rY   rY   rZ   rê  û  ó    ürê  c                   @   s8   e Zd ZG dd„ deƒZdefdefdefdeffZdS )Ú!RCM_REMOTEADDRESS_UNION_CASE_IPV6c                   @   r¡   )z(RCM_REMOTEADDRESS_UNION_CASE_IPV6._8CHAR))rë  z8s=b""NrÙ  rY   rY   rY   rZ   Ú_8CHAR  r¤   rò  rí  rï  rë  Úsin6_scope_idN)rP   r\   r]   r
   rò  r    r   rm   rY   rY   rY   rZ   rñ    rð  rñ  c                   @   r  )ÚRCM_REMOTEADDRESSrö  Úipv4Úipv6)r=   r9  N)rP   r\   r]   r    rk   rê  rñ  rú  rY   rY   rY   rZ   rô    r  rô  c                   @   r  )ÚpResult_ENUMr  c                   @   sX   e Zd ZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZdZdZdZdZdZdZdZdZdS )zpResult_ENUM.enumItemsr   l       l       l       l       l   "    l   #    l       l       l       l      l   j    l   n  l   W   l      l   Ÿ  l   .  l      l   z   N)rP   r\   r]   ÚSTATUS_SUCCESSÚSTATUS_INVALID_PARAMETERÚSTATUS_CANCELLEDÚSTATUS_INVALID_INFO_CLASSÚSTATUS_NO_MEMORYÚSTATUS_ACCESS_DENIEDÚSTATUS_BUFFER_TOO_SMALLÚSTATUS_NOT_IMPLEMENTEDÚSTATUS_INFO_LENGTH_MISMATCHÚSTATUS_UNSUCCESSFULÚSTATUS_CTX_WINSTATION_NOT_FOUNDÚSTATUS_WRONG_PASSWORDÚ+DOES_NOT_EXISTS_OR_INSUFFICIENT_PERMISSIONSÚINVALID_PARAMETER2ÚERROR_ACCESS_DENIEDÚERROR_INVALID_STATEÚERROR_LOGON_FAILUREÚERROR_FILE_NOT_FOUNDÚERROR_STATUS_BUFFER_TOO_SMALLrY   rY   rY   rZ   rR      s(    rR   Nr  rY   rY   rY   rZ   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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defdefdefdefdefdefdeffZdS )ÚTS_SYS_PROCESS_INFORMATIONÚNextEntryOffsetÚNumberOfThreadsÚSpareLi1ÚSpareLi2ÚSpareLi3Ú
CreateTimeÚUserTimeÚ
KernelTimeÚ	ImageNameÚBasePriorityÚUniqueProcessIdÚInheritedFromUniqueProcessIdÚHandleCountrè  ÚSpareUl3ÚPeakVirtualSizeÚVirtualSizeÚPageFaultCountÚPeakWorkingSetSizeÚWorkingSetSizeÚQuotaPeakPagedPoolUsageÚQuotaPagedPoolUsageÚQuotaPeakNonPagedPoolUsageÚQuotaNonPagedPoolUsageÚPagefileUsageÚPeakPagefileUsageÚPrivatePageCountN)	rP   r\   r]   r   r   r{   r   r   rm   rY   rY   rY   rZ   r  9  s:    år  c                   @   ro   )ÚPTS_SYS_PROCESS_INFORMATIONrN   N)rP   r\   r]   r  rq   rY   rY   rY   rZ   r&  Y  rr   r&  c                   @   s2   e Zd ZdefdefdeffZdd„ Zdd„ ZdS )	ÚTS_ALL_PROCESSES_INFOÚpTsProcessInfoÚ	SizeOfSidÚpSidc                 C   s   | j d j d S )Nr(  rN   )rS   rü   rY   rY   rZ   ÚgetProcessInfof  s   z$TS_ALL_PROCESSES_INFO.getProcessInfoc                 C   s@   | j d j d rd | j d d ¡nd}|sdS tƒ  t|ƒ¡S )Nr*  r   rž   rN   rK   )rS   rŸ   r'   rõ   rê   )rV   ré   rY   rY   rZ   ÚgetSidi  s   (zTS_ALL_PROCESSES_INFO.getSidN)	rP   r\   r]   r&  r   r¥   rm   r+  r,  rY   rY   rY   rZ   r'  `  s    ýr'  c                   @   rÅ   )ÚTS_ALL_PROCESSES_INFO_ARRAYN)rP   r\   r]   r'  r    rY   rY   rY   rZ   r-  o  r¤   r-  c                   @   ro   )ÚPTS_ALL_PROCESSES_INFOrN   N)rP   r\   r]   r-  rq   rY   rY   rY   rZ   r.  r  rr   r.  c                   @   rÞ  )ÚWINSTATIONCONFIG2Nrà  rY   rY   rY   rZ   r/  y  rá  r/  c                   @   rÞ  )ÚCLIENT_STACK_ADDRESSNrà  rY   rY   rY   rZ   r0  }  rá  r0  c                   @   ó    e Zd ZdZdefdeffZdS )ÚRpcOpenSessionr   rè  Ú	phSessionN)rP   r\   r]   Úopnumr   r  rm   rY   rY   rY   rZ   r2  ‡  ó
    þr2  c                   @   rû  )ÚRpcOpenSessionResponser3  Ú	ErrorCodeN)rP   r\   r]   ÚSESSION_HANDLEr   rm   rY   rY   rY   rZ   r6  Ž  rþ  r6  c                   @   ó   e Zd ZdZdeffZdS )ÚRpcCloseSessionr>   r3  N©rP   r\   r]   r4  r8  rm   rY   rY   rY   rZ   r:  •  ó    ÿr:  c                   @   ro   )ÚRpcCloseSessionResponser7  N©rP   r\   r]   r   rm   rY   rY   rY   rZ   r=  ›  rr   r=  c                   @   ó&   e Zd ZdZdefdefdeffZdS )Ú
RpcConnectr=   ÚhSessionÚTargetSessionIdÚ
szPasswordN)rP   r\   r]   r4  r8  r   r   rm   rY   rY   rY   rZ   r@  ¡  ó    ýr@  c                   @   ro   )ÚRpcConnectResponser7  Nr>  rY   rY   rY   rZ   rE  ©  rr   rE  c                   @   r9  )ÚRpcDisconnectrC   rA  Nr;  rY   rY   rY   rZ   rF  ¯  r<  rF  c                   @   ro   )ÚRpcDisconnectResponser7  Nr>  rY   rY   rY   rZ   rG  µ  rr   rG  c                   @   r9  )Ú	RpcLogoffrD   rA  Nr;  rY   rY   rY   rZ   rH  »  r<  rH  c                   @   ro   )ÚRpcLogoffResponser7  Nr>  rY   rY   rY   rZ   rI  Á  rr   rI  c                   @   r9  )ÚRpcGetUserNamerE   rA  Nr;  rY   rY   rY   rZ   rJ  Ç  r<  rJ  c                   @   s"   e Zd ZdefdefdeffZdS )ÚRpcGetUserNameResponser#  r$  r7  N©rP   r\   r]   rš   r   rm   rY   rY   rY   rZ   rK  Í  s
    ürK  c                   @   r9  )ÚRpcGetTerminalNamerF   rA  Nr;  rY   rY   rY   rZ   rM  Ö  r<  rM  c                   @   rû  )ÚRpcGetTerminalNameResponser%  r7  NrL  rY   rY   rY   rZ   rN  Ü  rþ  rN  c                   @   r9  )ÚRpcGetStater9   rA  Nr;  rY   rY   rY   rZ   rO  ã  r<  rO  c                   @   rû  )ÚRpcGetStateResponseÚplStater7  N)rP   r\   r]   rŸ  r   rm   rY   rY   rY   rZ   rP  é  rþ  rP  c                   @   r9  )ÚRpcIsSessionDesktopLockedrG   rA  Nr;  rY   rY   rY   rZ   rR  ð  r<  rR  c                   @   ro   )Ú!RpcIsSessionDesktopLockedResponser7  Nr>  rY   rY   rY   rZ   rS  ö  rr   rS  c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZdS )	ÚRpcShowMessageBoxr.   rA  ÚszTitleÚ	szMessageÚulStyleÚ	ulTimeoutÚ
bDoNotWaitN)	rP   r\   r]   r4  r8  r   r   r   rm   rY   rY   rY   rZ   rT  ü  ó    úrT  c                   @   rû  )ÚRpcShowMessageBoxResponseÚpulResponser7  N)rP   r\   r]   r
  r   rm   rY   rY   rY   rZ   r[    rþ  r[  c                   @   r9  )ÚRpcGetTimesrB   rA  Nr;  rY   rY   rY   rZ   r]    r<  r]  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚRpcGetTimesResponseÚpConnectTimeÚpDisconnectTimeÚ
pLogonTimer7  N©rP   r\   r]   ru   r   rm   rY   rY   rY   rZ   r^    ó    ür^  c                   @   r1  )ÚRpcGetSessionCountersrH   ÚhBindingÚuEntriesN)rP   r\   r]   r4  r  r   rm   rY   rY   rY   rZ   rd    r5  rd  c                   @   rû  )ÚRpcGetSessionCountersResponseÚpCounterr7  N)rP   r\   r]   r~  r   rm   rY   rY   rY   rZ   rg  $  rþ  rg  c                   @   r9  )ÚRpcGetSessionInformationr/   rè  N©rP   r\   r]   r4  r   rm   rY   rY   rY   rZ   ri  +  r<  ri  c                   @   rû  )Ú RpcGetSessionInformationResponseÚpSessionInfor7  N)rP   r\   r]   r"  r   rm   rY   rY   rY   rZ   rk  0  rþ  rk  c                   @   r9  )ÚRpcSwitchToServicesSessionr5  re  N©rP   r\   r]   r4  r  rm   rY   rY   rY   rZ   rm  7  r<  rm  c                   @   ro   )Ú"RpcSwitchToServicesSessionResponser7  Nr>  rY   rY   rY   rZ   ro  =  rr   ro  c                   @   r9  )ÚRpcRevertFromServicesSessionr5   re  Nrn  rY   rY   rY   rZ   rp  B  r<  rp  c                   @   ro   )Ú$RpcRevertFromServicesSessionResponser7  Nr>  rY   rY   rY   rZ   rq  H  rr   rq  c                   @   r9  )ÚRpcGetLoggedOnCountr7  re  Nrn  rY   rY   rY   rZ   rr  N  r<  rr  c                   @   s"   e Zd ZdefdefdeffZdS )ÚRpcGetLoggedOnCountResponseÚpUserSessionsÚpDeviceSessionsr7  Nr>  rY   rY   rY   rZ   rs  T  rì  rs  c                   @   r9  )ÚRpcGetSessionTyper8   rè  Nrj  rY   rY   rY   rZ   rv  \  r<  rv  c                   @   rû  )ÚRpcGetSessionTypeResponseÚpSessionTyper7  N)rP   r\   r]   rÀ  r   rm   rY   rY   rY   rZ   rw  b  rþ  rw  c                   @   r1  )ÚRpcGetSessionInformationExr4   rè  rý  N)rP   r\   r]   r4  r   r   rm   rY   rY   rY   rZ   ry  i  r5  ry  c                   @   rû  )Ú"RpcGetSessionInformationExResponseÚLSMSessionInfoExPtrr7  N)rP   r\   r]   r‹  r   rm   rY   rY   rY   rZ   rz  p  rþ  rz  c                   @   s&   e Zd ZdZdefdefdeffZdS )ÚRpcWaitForSessionStater   rè  ré  ÚTimeoutN©rP   r\   r]   r4  r   r   rm   rY   rY   rY   rZ   r|  y  rD  r|  c                   @   ro   )ÚRpcWaitForSessionStateResponser7  Nr>  rY   rY   rY   rZ   r  �  rr   r  c                   @   r1  )ÚRpcRegisterAsyncNotificationr>   rè  ÚMaskNr~  rY   rY   rY   rZ   r€  ‡  r5  r€  c                   @   rû  )Ú$RpcRegisterAsyncNotificationResponseÚphNotifyr7  N©rP   r\   r]   ÚNOTIFY_HANDLEr   rm   rY   rY   rY   rZ   r‚  Ž  rþ  r‚  c                   @   r9  )ÚRpcWaitAsyncNotificationr=   ÚhNotifyN)rP   r\   r]   r4  rö   rm   rY   rY   rY   rZ   r†  •  r<  r†  c                   @   ó"   e Zd ZdefdefdeffZdS )Ú RpcWaitAsyncNotificationResponseÚSessionChangeÚpEntriesr7  N)rP   r\   r]   r�  r   rm   rY   rY   rY   rZ   r‰  ›  rì  r‰  c                   @   r9  )ÚRpcUnRegisterAsyncNotificationrC   r‡  N)rP   r\   r]   r4  r…  rm   rY   rY   rY   rZ   rŒ  £  r<  rŒ  c                   @   rû  )Ú&RpcUnRegisterAsyncNotificationResponser‡  r7  Nr„  rY   rY   rY   rZ   r�  ©  rþ  r�  c                   @   r9  )ÚRpcOpenEnumr   re  Nrn  rY   rY   rY   rZ   rŽ  ±  r<  rŽ  c                   @   rû  )ÚRpcOpenEnumResponseÚphEnumr7  N©rP   r\   r]   ÚENUM_HANDLEr   rm   rY   rY   rY   rZ   r�  ¶  rþ  r�  c                   @   r9  )ÚRpcCloseEnumr>   r�  N©rP   r\   r]   r4  r’  rm   rY   rY   rY   rZ   r“  ½  r<  r“  c                   @   rû  )ÚRpcCloseEnumResponser�  r7  Nr‘  rY   rY   rY   rZ   r•  Â  rþ  r•  c                   @   r?  )ÚRpcFilterByStater=   ÚhEnumré  ÚbInvertN)rP   r\   r]   r4  r’  r   r   rm   rY   rY   rY   rZ   r–  É  rD  r–  c                   @   ro   )ÚRpcFilterByStateResponser7  Nr>  rY   rY   rY   rZ   r™  Ð  rr   r™  c                   @   r9  )ÚRpcFilterByCallersNamerC   r—  Nr”  rY   rY   rY   rZ   rš  Ö  r<  rš  c                   @   ro   )ÚRpcFilterByCallersNameResponser7  Nr>  rY   rY   rY   rZ   r›  Û  rr   r›  c                   @   s    e Zd ZdZdefdeffZdS )ÚRpcEnumAddFilterrD   r—  ÚhSubEnumNr”  rY   rY   rY   rZ   rœ  á  r5  rœ  c                   @   ro   )ÚRpcEnumAddFilterResponser7  Nr>  rY   rY   rY   rZ   rž  ç  rr   rž  c                   @   r1  )ÚRpcGetEnumResultrE   r—  rý  N©rP   r\   r]   r4  r’  r   rm   rY   rY   rY   rZ   rŸ  í  r5  rŸ  c                   @   rˆ  )ÚRpcGetEnumResultResponseÚppSessionEnumResultr‹  r7  N©rP   r\   r]   r   r   rm   rY   rY   rY   rZ   r¡  ô  rì  r¡  c                   @   r1  )ÚRpcFilterBySessionTyperF   r—  rx  N)rP   r\   r]   r4  r’  r&   rm   rY   rY   rY   rZ   r¤  ü  r5  r¤  c                   @   ro   )ÚRpcFilterBySessionTypeResponser7  Nr>  rY   rY   rY   rZ   r¥    rr   r¥  c                   @   r?  )ÚRpcGetSessionIdsrG   r  ÚFilterÚ
MaxEntriesN)rP   r\   r]   r4  r  rÙ  r   rm   rY   rY   rY   rZ   r¦  	  rD  r¦  c                   @   rˆ  )ÚRpcGetSessionIdsResponseÚpSessionIdsÚpcSessionIdsr7  N)rP   r\   r]   rœ   r   rm   rY   rY   rY   rZ   r©    rì  r©  c                   @   r1  )ÚRpcGetEnumResultExr.   r—  rý  Nr   rY   rY   rY   rZ   r¬    r5  r¬  c                   @   rˆ  )ÚRpcGetEnumResultExResponser¢  r‹  r7  Nr£  rY   rY   rY   rZ   r­    rì  r­  c                   @   r9  )ÚRpcGetAllSessionsrB   ÚpLevelN©rP   r\   r]   r4  r   rm   rY   rY   rY   rZ   r®  '  r<  r®  c                   @   s(   e Zd ZdefdefdefdeffZdS )ÚRpcGetAllSessionsResponser¯  ÚppSessionDataÚ	pcEntriesr7  N)rP   r\   r]   r   r  rm   rY   rY   rY   rZ   r±  -  s    ür±  c                   @   r9  )ÚRpcGetAllSessionsExrH   rý  Nr°  rY   rY   rY   rZ   r´  7  r<  r´  c                   @   ro   )ÚRpcGetAllSessionsExResponser~   N©rP   r\   r]   r   rm   rY   rY   rY   rZ   rµ  =  s    ÿrµ  c                   @   r9  )ÚRpcGetClientDatar   rè  Nr°  rY   rY   rY   rZ   r·  E  r<  r·  c                   @   rˆ  )ÚRpcGetClientDataResponseÚppBuffÚpOutBuffByteLenr7  N)rP   r\   r]   ru  r   rm   rY   rY   rY   rZ   r¸  K  rì  r¸  c                   @   r9  )ÚRpcGetConfigDatar>   rè  Nr°  rY   rY   rY   rZ   r»  S  r<  r»  c                   @   rˆ  )ÚRpcGetConfigDataResponser¹  rº  r7  N)rP   r\   r]   rÝ  r   rm   rY   rY   rY   rZ   r¼  Y  s
    ýr¼  c                   @   r1  )ÚRpcGetProtocolStatusr=   rè  ÚInfoTypeN)rP   r\   r]   r4  r   rÛ  rm   rY   rY   rY   rZ   r½  b  r5  r½  c                   @   ræ  )ÚRpcGetProtocolStatusResponseÚppProtoStatusÚpcbProtoStatusr7  N)rP   r\   r]   rÛ  rä  r   rm   rY   rY   rY   rZ   r¿  i  rì  r¿  c                   @   r9  )ÚRpcGetLastInputTimerC   rè  Nr°  rY   rY   rY   rZ   rÂ  q  r<  rÂ  c                   @   rû  )ÚRpcGetLastInputTimeResponseÚpLastInputTimer7  Nrb  rY   rY   rY   rZ   rÃ  w  rþ  rÃ  c                   @   r9  )ÚRpcGetRemoteAddressrD   rè  Nr°  rY   rY   rY   rZ   rÅ  ~  r<  rÅ  c                   @   rû  )ÚRpcGetRemoteAddressResponseÚpRemoteAddressr7  N)rP   r\   r]   rô  r   rm   rY   rY   rY   rZ   rÆ  „  rþ  rÆ  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )Ú
RpcShadow2r   rB  ÚeRequestControlÚeRequestPermissionÚcchInvitationN)rP   r\   r]   r4  r   rÉ  rÍ  rm   rY   rY   rY   rZ   rÈ  Œ  ó    ürÈ  c                   @   ræ  )ÚRpcShadow2ResponseÚpePermissionÚpszInvitationr7  N)rP   r\   r]   rÑ  r   r   rm   rY   rY   rY   rZ   rÍ  •  rì  rÍ  c                   @   s,   e Zd ZdZdefdefdefdeffZdS )Ú	RpcShadowrE   ÚszTargetServerNamerB  ÚHotKeyVkÚHotkeyModifiersN)	rP   r\   r]   r4  r   r   r#   r    rm   rY   rY   rY   rZ   rÐ  ž  rÌ  rÐ  c                   @   ro   )ÚRpcShadowResponser7  Nr>  rY   rY   rY   rZ   rÔ  §  rr   rÔ  c                   @   rÜ  )ÚRpcShadowTargeta  
    HRESULT RpcShadowTarget(
    [in] handle_t hBinding,
    [in] ULONG SessionId,
    [in, size_is(ConfigSize)] PBYTE pConfig,
    [in, range(0, 0x8000)] ULONG ConfigSize,
    [in, size_is(AddressSize)] PBYTE pAddress,
    [in, range(0, 0x1000)] ULONG AddressSize,
    [in, size_is(ModuleDataSize)] PBYTE pModuleData,
    [in, range(0, 0x1000)] ULONG ModuleDataSize,
    [in, size_is(ThinwireDataSize)]
    PBYTE pThinwireData,
    [in, range(0, 0x1000)] ULONG ThinwireDataSize,
    [in, string] WCHAR* szClientName
    );
    rF   N©rP   r\   r]   r†   r4  rY   rY   rY   rZ   rÕ  ®  s    rÕ  c                   @   ro   )ÚRpcShadowTargetResponser~   Nr¶  rY   rY   rY   rZ   r×  Á  rr   r×  c                   @   r9  )ÚRpcShadowStopr9   rè  Nr°  rY   rY   rY   rZ   rØ  È  r<  rØ  c                   @   ro   )ÚRpcShadowStopResponser7  Nr>  rY   rY   rY   rZ   rÙ  Î  rr   rÙ  c                   @   r9  )ÚRpcGetAllListenersrG   rý  N)rP   r\   r]   r4  r   rm   rY   rY   rY   rZ   rÚ  Õ  r<  rÚ  c                   @   rˆ  )ÚRpcGetAllListenersResponseÚppListenersÚpNumListenersr7  N)rP   r\   r]   r!  r   rm   rY   rY   rY   rZ   rÛ  Û  rì  rÛ  c                   @   r¡   )Ú"RpcGetSessionProtocolLastInputTimer.   N©rP   r\   r]   r4  rY   rY   rY   rZ   rÞ  ã  ó    rÞ  c                   @   ro   )Ú*RpcGetSessionProtocolLastInputTimeResponserN   Nr¶  rY   rY   rY   rZ   rá  ñ  rr   rá  c                   @   r¡   )ÚRpcGetUserCertificatesrB   Nrß  rY   rY   rY   rZ   râ  ÷  rà  râ  c                   @   ro   )ÚRpcGetUserCertificatesResponserN   Nr¶  rY   rY   rY   rZ   rã    rr   rã  c                   @   rÜ  )ÚRpcQuerySessionDataaî  
    HRESULT RpcQuerySessionData(
        [in] handle_t hBinding,
        [in] ULONG SessionId,
        [in] QUERY_SESSION_DATA_TYPE type,
        [in, unique, size_is(cbInputData )] byte* pbInputData,
        [in, range(0, 8192)] DWORD cbInputData,
        [out, ref, size_is(cbSessionData), length_is(*pcbReturnLength)] byte* pbSessionData,
        [in, range(0, 8192)] ULONG cbSessionData,
        [out, ref] ULONG* pcbReturnLength,
        [out, ref] ULONG* pcbRequireBufferSize
    );
    rH   NrÖ  rY   rY   rY   rZ   rä    s    rä  c                   @   ro   )ÚRpcQuerySessionDataResponser~   Nr¶  rY   rY   rY   rZ   rå    rr   rå  c                   @   r9  )ÚRpcOpenListenerr   ÚszListenerNameN)rP   r\   r]   r4  r   rm   rY   rY   rY   rZ   ræ  !  r<  ræ  c                   @   rû  )ÚRpcOpenListenerResponseÚ
phListenerr7  N©rP   r\   r]   Ú	HLISTENERr   rm   rY   rY   rY   rZ   rè  '  rþ  rè  c                   @   r9  )ÚRpcCloseListenerr>   ré  N©rP   r\   r]   r4  rë  rm   rY   rY   rY   rZ   rì  .  r<  rì  c                   @   rû  )ÚRpcCloseListenerResponseré  r7  Nrê  rY   rY   rY   rZ   rî  4  rþ  rî  c                   @   r9  )ÚRpcStopListenerr=   ré  Nrí  rY   rY   rY   rZ   rï  ;  r<  rï  c                   @   ro   )ÚRpcStopListenerResponser7  Nr>  rY   rY   rY   rZ   rð  A  rr   rð  c                   @   r9  )ÚRpcStartListenerrC   ré  Nrí  rY   rY   rY   rZ   rñ  G  r<  rñ  c                   @   ro   )ÚRpcStartListenerResponser7  Nr>  rY   rY   rY   rZ   rò  M  rr   rò  c                   @   r9  )ÚRpcIsListeningrD   ré  Nrí  rY   rY   rY   rZ   ró  S  r<  ró  c                   @   rû  )ÚRpcIsListeningResponseÚpbIsListeningr7  N)rP   r\   r]   r   r   rm   rY   rY   rY   rZ   rô  Y  rþ  rô  c                   @   r9  )ÚRpcWinStationOpenServerr   re  Nrn  rY   rY   rY   rZ   rö  a  r<  rö  c                   @   ræ  )ÚRpcWinStationOpenServerResponseÚpResultÚphServerr7  N)rP   r\   r]   r÷  ÚSERVER_HANDLEr   rm   rY   rY   rY   rZ   r÷  g  rì  r÷  c                   @   r9  )ÚRpcWinStationCloseServerr>   ÚhServerN©rP   r\   r]   r4  rú  rm   rY   rY   rY   rZ   rû  o  r<  rû  c                   @   rû  )Ú RpcWinStationCloseServerResponserø  r7  N©rP   r\   r]   r÷  r   rm   rY   rY   rY   rZ   rþ  u  rþ  rþ  c                   @   r9  )ÚRpcIcaServerPingr=   rü  Nrý  rY   rY   rY   rZ   r   }  r<  r   c                   @   rû  )ÚRpcIcaServerPingResponserø  r7  Nrÿ  rY   rY   rY   rZ   r  ƒ  rþ  r  c                   @   s6   e Zd ZdZdZdefdefdefdefdeffZdS )	ÚRpcWinStationEnumeratea  
    BOOLEAN RpcWinStationEnumerate(
    [in] SERVER_HANDLE hServer,
    [out] DWORD* pResult,
    [in, out] PULONG pEntries,
    [in, out, unique, size_is(*pByteCount)]
    PCHAR pLogonId,
    [in, out] PULONG pByteCount,
    [in, out] PULONG pIndex
    );
    rC   rü  r‹  ÚpLogonIdÚ
pByteCountÚpIndexN)	rP   r\   r]   r†   r4  rú  r   r"   rm   rY   rY   rY   rZ   r  ‹  s    ûr  c                   @   ro   )ÚRpcWinStationEnumerateResponserø  Nr¶  rY   rY   rY   rZ   r     rr   r  c                   @   s.   e Zd ZdZdZdefdefddefdfZdS )	ÚRpcWinStationRenameaH  
    BOOLEAN RpcWinStationRename(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in, size_is(NameOldSize)] PWCHAR pWinStationNameOld,
        [in, range(0, 256)] DWORD NameOldSize,
        [in, size_is(NameNewSize)] PWCHAR pWinStationNameNew,
        [in, range(0, 256)] DWORD NameNewSize
    );
    rD   rü  ÚpWinStationNameOld)ÚNameOldSizez"<L=len(pWinStationNameOld["Data"])ÚpWinStationNameNew)ÚNameNewSizez"<L=len(pWinStationNameNew["Data"])N)rP   r\   r]   r†   r4  rú  r`   rm   rY   rY   rY   rZ   r  §  s    
ûr  c                   @   rû  )ÚRpcWinStationRenameResponserø  r7  Nrÿ  rY   rY   rY   rZ   r  »  rþ  r  c                   @   s,   e Zd ZdZdZdefdefdefdfZdS )ÚRpcWinStationQueryInformationa�  
    BOOLEAN RpcWinStationQueryInformation(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in] DWORD LogonId,
        [in] DWORD WinStationInformationClass,
        [in, out, unique, size_is(WinStationInformationLength)]
        PCHAR pWinStationInformation,
        [in, range(0, 0x8000)] DWORD WinStationInformationLength,
        [out] DWORD* pReturnLength
    );
    rE   rü  ÚLogonIdÚWinStationInformationClass)Úbuffrc   N©rP   r\   r]   r†   r4  rú  r   rm   rY   rY   rY   rZ   r  Ã  s    úr  c                   @   ro   )Ú%RpcWinStationQueryInformationResponser~   Nr¶  rY   rY   rY   rZ   r  Ú  rr   r  c                   @   rÜ  )ÚRpcWinStationSetInformationaM  
    BOOLEAN RpcWinStationSetInformation(
    [in] SERVER_HANDLE hServer,
    [out] DWORD* pResult,
    [in] DWORD LogonId,
    [in] DWORD WinStationInformationClass,
    [in, out, unique, size_is(WinStationInformationLength)]
    PCHAR pWinStationInformation,
    [in, range(0, 0x8000)] DWORD WinStationInformationLength
    );
    rF   NrÖ  rY   rY   rY   rZ   r  á  s    r  c                   @   ro   )Ú#RpcWinStationSetInformationResponser~   Nr¶  rY   rY   rY   rZ   r  î  rr   r  c                
   @   sB   e Zd ZdZdefdefdefddefddefd	efd
eff	ZdS )ÚRpcWinStationSendMessager9   rü  r  ÚpTitle)ÚTitleLengthz<L=len(pTitle["Data"])ÚpMessage)ÚMessageLengthz<L=len(pMessage["Data"])ÚStyler}  Ú	DoNotWaitN©	rP   r\   r]   r4  rú  r   r`   r   rm   rY   rY   rY   rZ   r  ô  s    ÷r  c                   @   ræ  )Ú RpcWinStationSendMessageResponserø  Ú	pResponser7  N©rP   r\   r]   r÷  r   r   rm   rY   rY   rY   rZ   r  	  rì  r  c                   @   ó"   e Zd ZdZdefdefdfZdS )ÚRpcLogonIdFromWinStationNamerG   rü  ÚpWinStationName)ÚNameSizez<L=len(pWinStationName["Data"])N)rP   r\   r]   r4  rú  r`   rm   rY   rY   rY   rZ   r!  		  ó    ýr!  c                   @   ræ  )Ú$RpcLogonIdFromWinStationNameResponserø  r  r7  Nr  rY   rY   rY   rZ   r%  	  rì  r%  c                   @   s4   e Zd ZdZdefdefdefdded  ffZdS )	ÚRpcWinStationNameFromLogonIdr.   rü  ÚLoginIdr"  r#  z<L=%dr>   N)	rP   r\   r]   r4  rú  r   r`   r^  rm   rY   rY   rY   rZ   r&  	  s    ür&  c                   @   ræ  )Ú$RpcWinStationNameFromLogonIdResponserø  r"  r7  N)rP   r\   r]   r÷  rˆ   r   rm   rY   rY   rY   rZ   r(  "	  rì  r(  c                   @   s:   e Zd ZdZdefdefdefdefdefddeffZd	S )
ÚRpcWinStationConnectrB   rü  ÚClientLogonIdÚConnectLogonIdÚTargetLogonIdÚ	pPassword©ÚPasswordSizez<L=len(pPassword["Data"])ÚWaitNr  rY   rY   rY   rZ   r)  *	  s    ùr)  c                   @   rû  )ÚRpcWinStationConnectResponserø  r7  Nrÿ  rY   rY   rY   rZ   r1  6	  rþ  r1  c                   @   s.   e Zd ZdZdefdefdefdefdfZdS )ÚRpcWinStationVirtualOpenrH   rü  r  ÚPidÚpVirtualName)r#  z<L=len(pVirtualName["Data"])N)rP   r\   r]   r4  rú  r   rs   rm   rY   rY   rY   rZ   r2  =	  s    ûr2  c                   @   ræ  )Ú RpcWinStationVirtualOpenResponserø  r  r7  N©rP   r\   r]   r÷  r   r   rm   rY   rY   rY   rZ   r5  F	  rì  r5  c                   @   ó&   e Zd ZdZdefdefdeffZdS )ÚRpcWinStationBeepOpenr/   rü  r  r3  N©rP   r\   r]   r4  rú  r   rm   rY   rY   rY   rZ   r8  N	  rD  r8  c                   @   ræ  )ÚRpcWinStationBeepOpenResponserø  r  r7  Nr6  rY   rY   rY   rZ   r:  U	  rì  r:  c                   @   r?  )ÚRpcWinStationDisconnectr5  rü  r'  ÚbWaitN©rP   r\   r]   r4  rú  r   r   rm   rY   rY   rY   rZ   r;  \	  rD  r;  c                   @   rû  )ÚRpcWinStationDisconnectResponserø  r7  Nrÿ  rY   rY   rY   rZ   r>  d	  rþ  r>  c                   @   r?  )ÚRpcWinStationResetr5   rü  r  r<  Nr=  rY   rY   rY   rZ   r?  j	  rD  r?  c                   @   rû  )ÚRpcWinStationResetResponserø  r7  Nrÿ  rY   rY   rY   rZ   r@  r	  rþ  r@  c                   @   r7  )ÚRpcWinStationShutdownSystemr7  rü  r*  r  Nr9  rY   rY   rY   rZ   rA  x	  rD  rA  c                   @   rû  )Ú#RpcWinStationShutdownSystemResponserø  r7  Nrÿ  rY   rY   rY   rZ   rB  €	  rþ  rB  c                   @   r1  )ÚRpcWinStationWaitSystemEventr8   rü  Ú	EventMaskNr9  rY   rY   rY   rZ   rC  †	  r5  rC  c                   @   ræ  )Ú$RpcWinStationWaitSystemEventResponserø  ÚpEventFlagsr7  Nr  rY   rY   rY   rZ   rE  �	  rì  rE  c                   @   s:   e Zd ZdZdefdefdefddefdefdeffZ	d	S )
ÚRpcWinStationShadowr4   rü  r  ÚpTargetServerName)r#  z!<L=len(pTargetServerName["Data"])r,  rÒ  rÓ  N)
rP   r\   r]   r4  rú  r   rp   r#   r    rm   rY   rY   rY   rZ   rG  •	  s    ùrG  c                   @   rû  )ÚRpcWinStationShadowResponserø  r7  Nrÿ  rY   rY   rY   rZ   rI  ¡	  rþ  rI  c                   @   r1  )ÚRpcWinStationShadowTargetSetupr®   rü  r  Nr9  rY   rY   rY   rZ   rJ  §	  r5  rJ  c                   @   rû  )Ú&RpcWinStationShadowTargetSetupResponserø  r7  Nrÿ  rY   rY   rY   rZ   rK  ®	  rþ  rK  c                   @   s^   e Zd 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defdeffZdS )ÚRpcWinStationShadowTargetr6  rü  r  ÚpConfigÚ
ConfigSizeÚpAddressÚAddressSizeÚpModuleDataÚModuleDataSizeÚpThinwireDataÚThinwireDataSizeÚpClientNameÚClientNameSizeN)	rP   r\   r]   r4  rú  r   r$   r   rm   rY   rY   rY   rZ   rL  µ	  s     ôrL  c                   @   rû  )Ú!RpcWinStationShadowTargetResponserø  r7  Nrÿ  rY   rY   rY   rZ   rW  Ø	  rþ  rW  c                   @   r   )ÚRpcWinStationSetPoolCountr:  rü  ÚpLicense)ÚLicenseSizez<L=len(pLicense["Data"])N)rP   r\   r]   r4  rú  rs   rm   rY   rY   rY   rZ   rX  à	  r$  rX  c                   @   rû  )Ú!RpcWinStationSetPoolCountResponserø  r7  Nrÿ  rY   rY   rY   rZ   r[  è	  rþ  r[  c                   @   r9  )Ú RpcWinStationQueryUpdateRequiredrn  rü  Nrý  rY   rY   rY   rZ   r\  ï	  r<  r\  c                   @   ræ  )Ú(RpcWinStationQueryUpdateRequiredResponserø  ÚpUpdateFlagr7  Nr  rY   rY   rY   rZ   r]  õ	  rì  r]  c                   @   s*   e Zd ZdZ	 defdefdefdfZdS )ÚRpcWinStationCallbackr<  rü  r  ÚpPhoneNumber)ÚPhoneNumberSizez<L=len(pPhoneNumber["Data"])N)rP   r\   r]   r4  rú  r   r`   rm   rY   rY   rY   rZ   r_  ý	  s    ür_  c                   @   rû  )ÚRpcWinStationCallbackResponserø  r7  Nrÿ  rY   rY   rY   rZ   rb  
  rþ  rb  c                   @   r?  )ÚRpcWinStationBreakPointr;  rü  r  Ú
KernelFlagNr=  rY   rY   rY   rZ   rc  
  rD  rc  c                   @   rû  )ÚRpcWinStationBreakPointResponserø  r7  Nrÿ  rY   rY   rY   rZ   re  
  rþ  re  c                   @   r9  )ÚRpcWinStationReadRegistryr:   rü  Nrý  rY   rY   rY   rZ   rf  &
  r<  rf  c                   @   rû  )Ú!RpcWinStationReadRegistryResponserø  r7  Nrÿ  rY   rY   rY   rZ   rg  ,
  rþ  rg  c                   @   r7  )ÚRpcWinStationWaitForConnectro  rü  r*  ÚClientProcessIdNr9  rY   rY   rY   rZ   rh  3
  rD  rh  c                   @   rû  )Ú#RpcWinStationWaitForConnectResponserø  r7  Nrÿ  rY   rY   rY   rZ   rj  ;
  rþ  rj  c                   @   s^   e Zd ZdZdefdefdefdefdefdefdd	efd
defddefde	fddeffZ
dS )ÚRpcWinStationNotifyLogonr;   rü  r*  ri  ÚfUserIsAdminÚ	UserTokenÚpDomain)Ú
DomainSizez<L=len(pDomain["Data"])Ú	pUserName)ÚUserNameSizez<L=len(pUserName["Data"])r-  r.  ÚSeedÚpUserConfig)rN  z<L=len(pUserConfig["Data"])ÚpfIsRedirectedN)rP   r\   r]   r4  rú  r   r   r`   r!   rs   rm   rY   rY   rY   rZ   rk  B
  s$    ñrk  c                   @   rˆ  )Ú RpcWinStationNotifyLogonResponserø  rt  r7  Nrÿ  rY   rY   rY   rZ   ru  V
  rì  ru  c                   @   r7  )ÚRpcWinStationNotifyLogoffrª   rü  r*  ri  Nr9  rY   rY   rY   rZ   rv  _
  rD  rv  c                   @   rû  )Ú!RpcWinStationNotifyLogoffResponserø  r7  Nrÿ  rY   rY   rY   rZ   rw  g
  rþ  rw  c                   @   r1  )Ú"OldRpcWinStationEnumerateProcessesrp  rü  Ú	ByteCountNr9  rY   rY   rY   rZ   rx  n
  r5  rx  c                   @   ræ  )Ú*OldRpcWinStationEnumerateProcessesResponserø  ÚpProcessBufferr7  N©rP   r\   r]   r÷  rs   r   rm   rY   rY   rY   rZ   rz  u
  rì  rz  c                   @   r1  )ÚRpcWinStationAnnoyancePopuprq  rü  Ú	LogonIdldNr9  rY   rY   rY   rZ   r}  }
  r5  r}  c                   @   ræ  )Ú#RpcWinStationAnnoyancePopupResponserø  r7  r  N©rP   r\   r]   r÷  r   r   rm   rY   rY   rY   rZ   r  „
  rì  r  c                   @   r1  )ÚRpcWinStationEnumerateProcessesrr  rü  ry  Nr9  rY   rY   rY   rZ   r�  �
  r5  r�  c                   @   ræ  )Ú'RpcWinStationEnumerateProcessesResponserø  r{  r7  Nr|  rY   rY   rY   rZ   r‚  ”
  rì  r‚  c                   @   r7  )ÚRpcWinStationTerminateProcessrs  rü  Ú	ProcessIdÚExitCodeNr9  rY   rY   rY   rZ   rƒ  ›
  rD  rƒ  c                   @   rû  )Ú%RpcWinStationTerminateProcessResponserø  r7  Nrÿ  rY   rY   rY   rZ   r†  £
  rþ  r†  c                   @   s8   e Zd ZdZdefdefdefdefdefdeffZ	dS )	ÚRpcWinStationNtsdDebugé*   rü  r  r„  ÚDbgProcessIdÚDbgThreadIdÚAttachCompletionRoutineN)
rP   r\   r]   r4  rú  r   r   r   r   rm   rY   rY   rY   rZ   r‡  ª
  rZ  r‡  c                   @   rû  )ÚRpcWinStationNtsdDebugResponserø  r7  Nrÿ  rY   rY   rY   rZ   rŒ  µ
  rþ  rŒ  c                   @   r?  )ÚRpcWinStationGetAllProcessesé+   rü  rý  ÚpNumberOfProcessesN)rP   r\   r]   r4  rú  r   ÚBOUNDED_ULONGrm   rY   rY   rY   rZ   r�  ¼
  rD  r�  c                   @   ó(   e Zd ZdefdefdefdeffZdS )Ú$RpcWinStationGetAllProcessesResponserø  r�  ÚppTsAllProcessesInfor7  N)rP   r\   r]   r÷  r�  r.  r   rm   rY   rY   rY   rZ   r’  Ä
  rc  r’  c                   @   s4   e Zd ZdZdefdefdefdefddeffZdS )	ÚRpcWinStationGetProcessSidé,   rü  ÚdwUniqueProcessIdÚProcessStartTimeÚpProcessUserSid)Ú	dwSidSizez<L=len(pProcessUserSid["Data"])ÚpdwSizeNeededN)	rP   r\   r]   r4  rú  r   r   ÚTS_PBYTErm   rY   rY   rY   rZ   r”  Ì
  s    úr”  c                   @   r‘  )Ú"RpcWinStationGetProcessSidResponserø  r˜  rš  r7  N)rP   r\   r]   r÷  r›  r   r   rm   rY   rY   rY   rZ   rœ  ×
  rc  rœ  c                   @   s*   e Zd ZdZdZdefdefdeffZdS )Ú$RpcWinStationGetTermSrvCountersValuezë
    BOOLEAN RpcWinStationGetTermSrvCountersValue(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in, range(0, 0x1000)] DWORD dwEntries,
        [in, out, size_is(dwEntries)] PTS_COUNTER pCounter
    );
    é-   rü  Ú	dwEntriesrh  N)	rP   r\   r]   r†   r4  rú  r   r~  rm   rY   rY   rY   rZ   r�  ß
  ó    ýr�  c                   @   ræ  )Ú,RpcWinStationGetTermSrvCountersValueResponserø  rh  r7  N)rP   r\   r]   r÷  r~  r   rm   rY   rY   rY   rZ   r¡  ï
  rì  r¡  c                   @   r9  )Ú!RpcWinStationReInitializeSecurityé.   rü  Nrý  rY   rY   rY   rZ   r¢  ÷
  r<  r¢  c                   @   rû  )Ú)RpcWinStationReInitializeSecurityResponserø  r7  Nrÿ  rY   rY   rY   rZ   r¤  ý
  rþ  r¤  c                   @   s,   e Zd ZdZdZdefddefdeffZdS )ÚRpcWinStationGetLanAdapterNameaa  
    BOOLEAN RpcWinStationGetLanAdapterName(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in, range(0, 0x1000)] DWORD PdNameSize,
        [in, size_is(PdNameSize)] PWCHAR pPdName,
        [in, range(0, 1024)] ULONG LanAdapter,
        [out] ULONG* pLength,
        [out, size_is(,*pLength)] PWCHAR* ppLanAdapter
    );
    é5   rü  )Ú
PdNameSizez<L=len(pPdName["Data"])ÚpPdNameÚ
LanAdapterN)	rP   r\   r]   r†   r4  rú  r`   r   rm   rY   rY   rY   rZ   r¥  /  s    ür¥  c                   @   ræ  )Ú&RpcWinStationGetLanAdapterNameResponserø  ÚppLanAdapterr7  N)rP   r\   r]   r÷  r`   r   rm   rY   rY   rY   rZ   rª  C  rì  rª  c                   @   ó*   e Zd ZdZdZdefdefdeffZdS )Ú"RpcWinStationQueryLogonCredentialszë
    BOOLEAN RpcWinStationQueryLogonCredentials(
        [in] SERVER_HANDLE hServer,
        [in] ULONG LogonId,
        [out, size_is(,*pcbCredentials)]
        PCHAR* ppCredentials,
        [in, out] ULONG* pcbCredentials
    );
    é7   rü  r  ÚpcbCredentialsN)rP   r\   r]   r†   r4  rú  r   rm   rY   rY   rY   rZ   r­  U  s    	ýr­  c                   @   ro   )Ú*RpcWinStationQueryLogonCredentialsResponserø  Nr¶  rY   rY   rY   rZ   r°  f  rr   r°  c                   @   r¬  )ÚRpcWinStationUpdateSettingsz¼
    BOOLEAN RpcWinStationUnRegisterConsoleNotification(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in] ULONG SessionId,
        [in] ULONG hWnd
    );
    é:   rü  ÚSettingsClassÚSettingsParametersNr  rY   rY   rY   rZ   r±  ƒ  r   r±  c                   @   ro   )Ú#RpcWinStationUpdateSettingsResponserø  Nr¶  rY   rY   rY   rZ   rµ  “  rr   rµ  c                   @   r?  )ÚRpcWinStationShadowStopé;   rü  r  r<  Nr=  rY   rY   rY   rZ   r¶  ˜  rD  r¶  c                   @   rû  )ÚRpcWinStationShadowStopResponserø  r7  Nrÿ  rY   rY   rY   rZ   r¸     rþ  r¸  c                   @   r9  )ÚRpcWinStationCloseServerExr@   rü  Nrý  rY   rY   rY   rZ   r¹  §  r<  r¹  c                   @   ræ  )Ú"RpcWinStationCloseServerExResponserù  rø  r7  N)rP   r\   r]   rú  r÷  r   rm   rY   rY   rY   rZ   rº  ­  rì  rº  c                   @   r1  )Ú#RpcWinStationIsHelpAssistantSessioné=   rü  rè  N)rP   r\   r]   r4  rú  r   rm   rY   rY   rY   rZ   r»  µ  r5  r»  c                   @   rû  )Ú+RpcWinStationIsHelpAssistantSessionResponserø  r7  Nrÿ  rY   rY   rY   rZ   r½  ¼  rþ  r½  c                   @   s2   e Zd ZdZdZdefdefdefdefdfZ	dS )	ÚRpcConnectCallbacka  
    BOOLEAN RpcConnectCallback(
        [in] SERVER_HANDLE hServer,
        [out] DWORD* pResult,
        [in] DWORD TimeOut,
        [in] ULONG AddressType,
        [in, size_is(AddressSize)] PBYTE pAddress,
        [in, range(0, 0x1000 )] ULONG AddressSize
    );
    r¼  rü  ÚTimeOutÚAddressTyperO  )rP  z<L=len(pAddress["Data"])N)
rP   r\   r]   r†   r4  rú  r   r   r›  rm   rY   rY   rY   rZ   r¾  Õ  s    
ûr¾  c                   @   ræ  )ÚRpcConnectCallbackResponserø  r7  ÚoutNr€  rY   rY   rY   rZ   rÁ  é  rì  rÁ  c                   @   r1  )Ú!RpcWinStationOpenSessionDirectoryéK   rü  ÚpszServerNameN)rP   r\   r]   r4  rú  r   rm   rY   rY   rY   rZ   rÃ  .  r5  rÃ  c                   @   rû  )Ú)RpcWinStationOpenSessionDirectoryResponserø  r7  Nrÿ  rY   rY   rY   rZ   rÆ  5  rþ  rÆ  c                 C   s   t ƒ }||d< |  |¡d S )Nrè  r3  )r2  Úrequest©Údcerè  rÇ  rY   rY   rZ   ÚhRpcOpenSessionB  ó   rÊ  c                 C   ó   t ƒ }||d< |  |¡S )Nr3  )r:  rÇ  )rÉ  r3  rÇ  rY   rY   rZ   ÚhRpcCloseSessionH  ó   
rÍ  c              
   C   s€   |d u rd}t ƒ }||d< ||d< |d |d< z|  |¡W S  ty? } z|jdkr9tƒ }d|d< |W  Y d }~S |‚d }~ww )	NrK   rA  rB  r€   rC  r>   r   r7  )r@  rÇ  rÒ   rÖ   rE  )rÉ  rA  rB  rV  rÇ  ÚeÚresprY   rY   rZ   ÚhRpcConnectN  s    
€ûrÑ  c                 C   rÌ  ©NrA  )rF  rÇ  ©rÉ  rA  rÇ  rY   rY   rZ   ÚhRpcDisconnect_  rÎ  rÔ  c              
   C   s`   t ƒ }||d< z|  |¡W S  ty/ } z|jdkr)tƒ }d|d< |W  Y d }~S |‚d }~ww )NrA  i   r   r7  )rH  rÇ  rÒ   rÖ   rI  )rÉ  rA  rÇ  rÏ  rÐ  rY   rY   rZ   Ú
hRpcLogoffe  s   
€ûrÕ  c                 C   rÌ  rÒ  )rJ  rÇ  rÓ  rY   rY   rZ   ÚhRpcGetUserNamet  rÎ  rÖ  c                 C   rÌ  rÒ  )rM  rÇ  rÓ  rY   rY   rZ   ÚhRpcGetTerminalNamez  rÎ  r×  c                 C   rÌ  rÒ  )rO  rÇ  rÓ  rY   rY   rZ   ÚhRpcGetState€  rÎ  rØ  c                 C   rÌ  rÒ  )rR  rÇ  rÓ  rY   rY   rZ   ÚhRpcIsSessionDesktopLocked†  rÎ  rÙ  Tc                 C   sh   |d ur|nd}|d ur|nd}t ƒ }||d< |d |d< |d |d< ||d< ||d< ||d	< |  |¡S )
NrL   rK   rA  r€   rU  rV  rW  rX  rY  )rT  rÇ  )rÉ  rA  ÚTitleÚMessager  r}  r  rÇ  rY   rY   rZ   ÚhRpcShowMessageBoxŒ  s   
rÜ  c                 C   rÌ  rÒ  )r]  rÇ  rÓ  rY   rY   rZ   ÚhRpcGetTimesš  rÎ  rÝ  c                 C   rÌ  )Nrf  )rd  rÇ  )rÉ  ÚEntriesrÇ  rY   rY   rZ   ÚhRpcGetSessionCounters   rÎ  rß  c                 C   rÌ  ©Nrè  )ri  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetSessionInformation¦  rÎ  rá  c                 C   s   t ƒ }|  |¡S rÓ   )rr  rÇ  ©rÉ  rÇ  rY   rY   rZ   ÚhRpcGetLoggedOnCount¬  s   
rã  c                 C   rÌ  rà  )rv  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetSessionType±  rÎ  rä  c                 C   s    t ƒ }||d< d|d< |  |¡S )Nrè  r>   rý  )ry  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetSessionInformationEx·  ó   
rå  c                 C   s(   t ƒ }||d< ||d< ||d< |  |¡S )Nrè  ré  r}  )r|  rÇ  )rÉ  rè  ré  r}  rÇ  rY   rY   rZ   ÚhRpcWaitForSessionStateÐ  s
   
rç  c                 C   s$   t ƒ }||d< ||d< |  |¡d S )Nrè  r�  rƒ  )r€  rÇ  )rÉ  rè  r�  rÇ  rY   rY   rZ   ÚhRpcRegisterAsyncNotificationÙ  ó   rè  c                 C   rÌ  ©Nr‡  )r†  rÇ  ©rÉ  r‡  rÇ  rY   rY   rZ   ÚhRpcWaitAsyncNotificationà  rÎ  rì  c                 C   rÌ  rê  )rŒ  rÇ  rë  rY   rY   rZ   ÚhRpcUnRegisterAsyncNotificationæ  rÎ  rí  c                 C   s   t ƒ }|  |¡d S ©Nr�  )rŽ  rÇ  râ  rY   rY   rZ   ÚhRpcOpenEnumí  s   rï  c                 C   rÌ  rî  )r“  rÇ  )rÉ  r�  rÇ  rY   rY   rZ   ÚhRpcCloseEnumò  rÎ  rð  c                 C   ó    t ƒ }||d< ||d< |  |¡S ©Nr—  rý  )rŸ  rÇ  ©rÉ  r—  rý  rÇ  rY   rY   rZ   ÚhRpcGetEnumResultþ  ræ  rô  c                 C   rñ  rò  )r¬  rÇ  ró  rY   rY   rZ   ÚhRpcGetEnumResultEx	  ræ  rõ  c                 C   rÌ  )Nr¯  )r®  rÇ  )rÉ  rý  rÇ  rY   rY   rZ   ÚhRpcGetAllSessions  rÎ  rö  c                 C   ó(   t ƒ }||d< z|  |¡W S    Y d S rà  )r·  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetClientData  ó   rø  c                 C   rÌ  rà  )r»  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetConfigData#  rÎ  rú  c                 C   rÌ  rà  )rÂ  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetLastInputTime+  rÎ  rû  c                 C   r÷  rà  )rÅ  rÇ  rÈ  rY   rY   rZ   ÚhRpcGetRemoteAddress1  rù  rü  c                 C   s   t ƒ }d|d< |  |¡S )Nr>   rý  )rÚ  rÇ  râ  rY   rY   rZ   ÚhRpcGetAllListeners:  rÎ  rý  c                 C   s    t ƒ }|d |d< |  |¡d S )Nr€   rç  ré  )ræ  rÇ  )rÉ  ÚListenerNamerÇ  rY   rY   rZ   ÚhRpcOpenListenerE  s   rÿ  c                 C   rÌ  ©Nré  )rì  rÇ  ©rÉ  ré  rÇ  rY   rY   rZ   ÚhRpcCloseListenerK  rÎ  r  c                 C   rÌ  r   )rï  rÇ  r  rY   rY   rZ   ÚhRpcStopListenerQ  rÎ  r  c                 C   rÌ  r   )rñ  rÇ  r  rY   rY   rZ   ÚhRpcStartListenerW  rÎ  r  c                 C   rÌ  r   )ró  rÇ  r  rY   rY   rZ   ÚhRpcIsListening]  rÎ  r  c                 C   s(   t ƒ }| j|dd�}|d r|d S d S )NF©Ú
checkErrorr7  rù  )rö  rÇ  )rÉ  rÇ  rÐ  rY   rY   rZ   ÚhRpcWinStationOpenServeri  s
   r  c                 C   ó   t ƒ }||d< | j|dd�S ©Nrü  Fr  )rû  rÇ  ©rÉ  rü  rÇ  rY   rY   rZ   ÚhRpcWinStationCloseServerq  rË  r  c                 C   r	  r
  )r   rÇ  r  rY   rY   rZ   ÚhRpcIcaServerPingw  rË  r  c                 C   sH   t ƒ }||d< ||d< t|dƒ|d< t|dƒ|d< ||d< | j|dd�S )	Nrü  r  rA   r  r  r  Fr  )r  rß   rÇ  )rÉ  rü  r  rÚ  rÛ  r  rÇ  rY   rY   rZ   ÚhRpcWinStationSendMessage~  s   r  c                 C   s.   t ƒ }||d< t|td ƒ|d< | j|dd�S )Nrü  r>   r"  Fr  )r!  rß   r^  rÇ  )rÉ  rü  ÚWinStationNamerÇ  rY   rY   rZ   ÚhRpcLogonIdFromWinStationNameˆ  s   r  c                 C   s6   t ƒ }||d< ||d< tdtd ƒ|d< | j|dd�S )Nrü  r'  rK   r>   r"  Fr  )r&  rß   r^  rÇ  )rÉ  rü  r'  rÇ  rY   rY   rZ   ÚhRpcWinStationNameFromLogonId�  s
   r  Fc                 C   sH   t ƒ }||d< ||d< ||d< ||d< |d |d< ||d< | j|dd	�S )
Nrü  r*  r+  r,  r€   r-  r0  Fr  )r)  rÇ  )rÉ  rü  r*  r+  r,  rV  r0  rÇ  rY   rY   rZ   ÚhRpcWinStationConnect—  s   	r  c                 C   ó,   t ƒ }||d< ||d< ||d< | j|dd�S )Nrü  r'  r<  Fr  )r;  rÇ  )rÉ  rü  r'  r<  rÇ  rY   rY   rZ   ÚhRpcWinStationDisconnectª  ó
   r  c                 C   r  ©Nrü  r  r<  Fr  )r?  rÇ  ©rÉ  rü  r  r<  rÇ  rY   rY   rZ   ÚhRpcWinStationReset²  r  r  c                 C   r  )Nrü  r*  r  Fr  )rA  rÇ  )rÉ  rü  r*  r  rÇ  rY   rY   rZ   ÚhRpcWinStationShutdownSystem»  r  r  c                 C   ó$   t ƒ }||d< ||d< | j|dd�S )Nrü  rD  Fr  )rC  rÇ  )rÉ  rü  rD  rÇ  rY   rY   rZ   ÚhRpcWinStationWaitSystemEventÄ  ré  r  c                 C   sD   t ƒ }||d< ||d< ||d< ||d< ||d< ||d< | j|dd�S )	Nrü  r  rH  r,  rÒ  rÓ  Fr  )rG  rÇ  )rÉ  rü  r  rH  r,  rÒ  rÓ  rÇ  rY   rY   rZ   ÚhRpcWinStationShadowÌ  s   r  c                 C   r  )Nrü  r  Fr  )rJ  rÇ  )rÉ  rü  r  rÇ  rY   rY   rZ   ÚhRpcWinStationShadowTargetSetup×  ré  r  c                 C   r  )Nrü  r  rd  Fr  )rc  rÇ  )rÉ  rü  r  rd  rÇ  rY   rY   rZ   ÚhRpcWinStationBreakPointÞ  r  r  c                 C   r	  r
  )rf  rÇ  r  rY   rY   rZ   ÚhRpcWinStationReadRegistryæ  rË  r  c                 C   r  ©Nrü  ry  Fr  )rx  rÇ  ©rÉ  rü  ry  rÇ  rY   rY   rZ   Ú#hOldRpcWinStationEnumerateProcessesì  ré  r"  c                 C   r  r   )r�  rÇ  r!  rY   rY   rZ   Ú hRpcWinStationEnumerateProcessesó  ré  r#  c                 C   r  )Nrü  r„  r…  Fr  )rƒ  rÇ  )rÉ  rü  r„  r…  rÇ  rY   rY   rZ   ÚhRpcWinStationTerminateProcessû  r  r$  c                 C   sV   t ƒ }||d< d|d< d|d< | j|dd�}|d s!t|d	 d
�‚|d s'g S |d S )Nrü  r   rý  i €  r�  Fr  r7  rø  )rÖ   r“  )r�  rÇ  rÒ   )rÉ  rü  rÇ  rÐ  rY   rY   rZ   ÚhRpcWinStationGetAllProcesses  s   r%  c                 C   s„   t ƒ }||d< ||d< ||d< d|d< | j|dd�}|d tjkr6|d	 }d
| |d< ||d< | j|dd�}|d r@t|d ƒS d S )Nrü  r–  r—  s                               r˜  Fr  rø  rš  ó    r™  r7  )r”  rÇ  r÷  r
  rê   )rÉ  rü  r–  r—  rÇ  rÐ  Ú
sizeNeededrY   rY   rZ   ÚhRpcWinStationGetProcessSid  s   ÿr(  c                 C   r	  r
  )r¢  rÇ  r  rY   rY   rZ   Ú"hRpcWinStationReInitializeSecurity"  rË  r)  c                 C   ó,   t ƒ }||d< ||d< ||d< | j|dd�S )Nrü  r¨  r©  Fr  )r¥  rÇ  )rÉ  rü  r¨  r©  rÇ  rY   rY   rZ   ÚhRpcWinStationGetLanAdapterName(  r  r+  c                 C   r*  )Nrü  r³  r´  Fr  )r±  rÇ  )rÉ  rü  r³  r´  rÇ  rY   rY   rZ   ÚhRpcWinStationUpdateSettings0  r  r,  c                 C   r  r  ©r¶  rÇ  r  rY   rY   rZ   ÚhRpcWinStationShadowStop9  r  r.  c                 C   r	  r
  r-  r  rY   rY   rZ   ÚhRpcWinStationCloseServerExA  rË  r/  c                 C   r  )Nrü  rè  Fr  r-  )rÉ  rü  rè  rÇ  rY   rY   rZ   Ú$hRpcWinStationIsHelpAssistantSessionG  ré  r0  c                 C   r  )Nrü  rÅ  Fr  r-  )rÉ  rü  rÅ  rÇ  rY   rY   rZ   Ú"hRpcWinStationOpenSessionDirectoryV  ré  r1  é    c                 C   s4   t ƒ }||d< ||d< ||d< ||d< | j|dd�S )NrB  rÉ  rÊ  rË  Fr  )rÈ  rÇ  )rÉ  rB  rÉ  rÊ  rË  rÇ  rY   rY   rZ   ÚhRpcShadow2]  s   r3  c                   @   s4   e Zd Zdd„ Zdd„ Zdd„ Zdd„ Zd	d
„ ZdS )ÚTSTSEndpointc                 C   s:   || _ || _| |¡| _|| _|| _|  ¡  | jj| _d S rÓ   )	Ú_TSTSEndpoint__doKerberosÚ
_target_iprò   Ú_stringbindingÚ	_endpointÚ_smbconnectionÚ_bindÚ_dcerÇ  )rV   ÚsmbÚ	target_ipÚstringbindingÚendpointÚkerberosrY   rY   rZ   rÔ   j  s   zTSTSEndpoint.__init__c                 C   sd   t  | j¡| _| j | j¡ | j ¡ | _| jr| j 	t
¡ | j t¡ | j ¡  | j | j¡ | jS rÓ   )r   ÚDCERPCTransportFactoryr7  Ú_rpctransportÚset_smb_connectionr9  Úget_dce_rpcr;  r5  Úset_auth_typer+   Úset_auth_levelr,   ÚconnectÚbindr8  rü   rY   rY   rZ   r:  t  s   
zTSTSEndpoint._bindc                 C   s   | j  ¡  d S rÓ   )r;  Ú
disconnectrü   rY   rY   rZ   Ú_disconnect  ræ   zTSTSEndpoint._disconnectc                 C   s   | S rÓ   rY   rü   rY   rY   rZ   Ú	__enter__�  s   zTSTSEndpoint.__enter__c                 C   s   |   ¡  d S rÓ   )rJ  )rV   Útyper„   Ú	tracebackrY   rY   rZ   Ú__exit__ƒ  rþ   zTSTSEndpoint.__exit__N)rP   r\   r]   rÔ   r:  rJ  rK  rN  rY   rY   rY   rZ   r4  i  s    
r4  c                       s\   e Zd Z‡ fdd„ZeZeZeZeZeZe	Z	e
Z
eZeZeZeZeZeZeZeZeZ‡  ZS )ÚTermSrvSessionc                    ó   t ƒ j||dt|d� d S ©Nz"ncacn_np:{}[\pipe\LSM_API_service]©r>  r?  r@  )r‘   rÔ   ÚTermSrvSession_UUID©rV   r<  r=  r@  r–   rY   rZ   rÔ   ‡  ó
   

ýzTermSrvSession.__init__)rP   r\   r]   rÔ   rÊ  rÍ  rÑ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÜ  rÝ  rß  rá  rã  rä  rå  r˜   rY   rY   r–   rZ   rO  †  s$    rO  c                       s,   e Zd Z‡ fdd„ZeZeZeZeZ‡  ZS )ÚTermSrvNotificationc                    rP  rQ  )r‘   rÔ   ÚTermSrvNotification_UUIDrT  r–   rY   rZ   rÔ   Ÿ  rU  zTermSrvNotification.__init__)	rP   r\   r]   rÔ   rç  rè  rì  rí  r˜   rY   rY   r–   rZ   rV  ž  s    rV  c                       ó0   e Zd Z‡ fdd„ZeZeZeZeZeZ‡  Z	S )ÚTermSrvEnumerationc                    rP  rQ  )r‘   rÔ   ÚTermSrvEnumeration_UUIDrT  r–   rY   rZ   rÔ   «  rU  zTermSrvEnumeration.__init__)
rP   r\   r]   rÔ   rï  rð  rô  rõ  rö  r˜   rY   rY   r–   rZ   rY  ª  ó    rY  c                       rX  )Ú	RCMPublicc                    rP  ©Nz&ncacn_np:{}[\pipe\TermSrv_API_service]rR  )r‘   rÔ   ÚRCMPublic_UUIDrT  r–   rY   rZ   rÔ   ¸  rU  zRCMPublic.__init__)
rP   r\   r]   rÔ   rø  rú  rû  rü  rý  r˜   rY   rY   r–   rZ   r\  ·  r[  r\  c                       rX  )ÚRcmListenerc                    rP  r]  )r‘   rÔ   ÚRcmListener_UUIDrT  r–   rY   rZ   rÔ   Æ  rU  zRcmListener.__init__)
rP   r\   r]   rÔ   rÿ  r  r  r  r  r˜   rY   rY   r–   rZ   r_  Å  r[  r_  c                       s    e Zd Z‡ fdd„ZeZ‡  ZS )ÚSessEnvPublicRpcc                    rP  )Nz#ncacn_np:{}[\pipe\SessEnvPublicRpc]rR  )r‘   rÔ   ÚSessEnvPublicRpc_UUIDrT  r–   rY   rZ   rÔ   Ó  rU  zSessEnvPublicRpc.__init__)rP   r\   r]   rÔ   r3  r˜   rY   rY   r–   rZ   ra  Ò  s    ra  c                       s„   e Zd Z‡ fdd„ZeZeZeZeZeZe	Z	e
Z
eZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZeZ‡  ZS )Ú	LegacyAPIc                    rP  )Nz-ncacn_np:{}[\pipe\Ctx_WinStation_API_service]rR  )r‘   rÔ   ÚLegacyAPI_UUIDrT  r–   rY   rZ   rÔ   Þ  rU  zLegacyAPI.__init__)rP   r\   r]   rÔ   r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r#  r$  r%  r(  r)  r+  r,  r.  r/  r0  r˜   rY   rY   r–   rZ   rc  Ý  s8    rc  rÓ   )r   r   T)r>   )T)Fr—   )r2  (  Ústructr   r   Úimpacket.dcerpc.v5r   Úimpacket.uuidr   r   r   Úimpacket.dcerpc.v5.ndrr   r	   r
   r   r   r   r   r   r   Úimpacket.dcerpc.v5.dtypesr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   rç   Úimpacketr(   Úimpacket.dcerpc.v5.enumr)   Úimpacket.dcerpc.v5.rpcrtr*   r+   r,   rS  rW  rZ  r^  r`  rb  rd  rÇ   ÚWDPREFIX_LENGTHÚSTACK_ADDRESS_LENGTHrÏ   rº   r¼   r¶   r´   r¸   ÚNASISPECIFICNAME_LENGTHÚNASIUSERNAME_LENGTHÚNASIPASSWORD_LENGTHÚNASISESSIONNAME_LENGTHrË   rk  r²   r¾   rÀ   rÂ   rÄ   rÉ   ÚMAX_COUNTER_EXTENSIONSr^  ÚPROTOCOL_CONSOLEÚPROTOCOL_ICAÚPROTOCOL_TSHAREÚPROTOCOL_RDPÚPDNAME_LENGTHÚWDNAME_LENGTHÚCDNAME_LENGTHrh  ÚMODEMNAME_LENGTHrÍ   rc  rÑ   ÚMAX_LICENSE_SERVER_LENGTHÚLOGONID_CURRENTÚMAX_PDCONFIGÚTERMSRV_TOTAL_SESSIONSÚTERMSRV_DISC_SESSIONSÚTERMSRV_RECON_SESSIONSÚTERMSRV_CURRENT_ACTIVE_SESSIONSÚTERMSRV_CURRENT_DISC_SESSIONSÚTERMSRV_PENDING_SESSIONSÚTERMSRV_SUCC_TOTAL_LOGONSÚTERMSRV_SUCC_LOCAL_LOGONSÚTERMSRV_SUCC_REMOTE_LOGONSÚTERMSRV_SUCC_SESSION0_LOGONSÚ$TERMSRV_CURRENT_TERMINATING_SESSIONSÚ!TERMSRV_CURRENT_LOGGEDON_SESSIONSÚNO_FALLBACK_DRIVERSÚFALLBACK_BESTGUESSÚFALLBACK_PCLÚFALLBACK_PSÚFALLBACK_PCLANDPSÚVIRTUALCHANNELNAME_LENGTHÚWINSTATION_QUERYÚWINSTATION_SETÚWINSTATION_RESETÚWINSTATION_VIRTUALÚWINSTATION_SHADOWÚWINSTATION_LOGONÚWINSTATION_LOGOFFÚWINSTATION_MSGÚWINSTATION_CONNECTÚWINSTATION_DISCONNECTÚ_NDRENUMr`   rp   rs   ru   r{   r‡   r›  rˆ   r�   r™   rš   rœ   r¢   r¥   r¦   r¨   r©   r«   r­   r¯   r±   r³   rµ   r·   r¹   r»   r½   r¿   rÁ   rÃ   rÆ   rÈ   rÊ   rÌ   rÎ   rÐ   rÒ   rß   rá   rå   rê   rö   r  r’  r  rë  rú  r…  r8  r
  r  r   r&  r3  r]  r`  rf  rg  ri  rj  rl  rm  rŸ  rª  r²  r¸  r¾  r�  r¿  rÀ  rÉ  rÍ  rÑ  rÙ  rÛ  rß  rç  rí  rñ  rõ  rü  rÿ  r   ÚSessionInfo_ExÚPSESSIONENUM_EXr  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r   r!  r"  r+  r4  r<  ru  rv  ry  r}  r~  r  r„  r‰  r‹  rŒ  r›  rœ  r�  rž  r¢  rØ  rÚ  rÝ  rß  râ  rã  rä  rå  rê  rñ  rô  r÷  r  r&  r'  r-  r.  r/  r0  r2  r6  r:  r=  r@  rE  rF  rG  rH  rI  rJ  rK  rM  rN  rO  rP  rR  rS  rT  r[  r]  r^  rd  rg  ri  rk  rm  ro  rp  rq  rr  rs  rv  rw  ry  rz  r|  r  r€  r‚  r†  r‰  rŒ  r�  rŽ  r�  r“  r•  r–  r™  rš  r›  rœ  rž  rŸ  r¡  r¤  r¥  r¦  r©  r¬  r­  r®  r±  r´  rµ  r·  r¸  r»  r¼  r½  r¿  rÂ  rÃ  rÅ  rÆ  rÈ  rÍ  rÐ  rÔ  rÕ  r×  rØ  rÙ  rÚ  rÛ  rÞ  rá  râ  rã  rä  rå  ræ  rè  rì  rî  rï  rð  rñ  rò  ró  rô  rö  r÷  rû  rþ  r   r  r  r  r  r  r  r  r  r  r  r  r!  r%  r&  r(  r)  r1  r2  r5  r8  r:  r;  r>  r?  r@  rA  rB  rC  rE  rG  rI  rJ  rK  rL  rW  rX  r[  r\  r]  r_  rb  rc  re  rf  rg  rh  rj  rk  ru  rv  rw  rx  rz  r}  r  r�  r‚  rƒ  r†  r‡  rŒ  r�  r’  r”  rœ  r�  r¡  r¢  r¤  r¥  rª  r­  r°  r±  rµ  r¶  r¸  r¹  rº  r»  r½  r¾  rÁ  rÃ  rÆ  rÊ  rÍ  rÑ  rÔ  rÕ  rÖ  r×  rØ  rÙ  rÜ  rÝ  rß  rá  rã  rä  rå  rç  rè  rì  rí  rï  rð  rô  rõ  rö  rø  rú  rû  rü  rý  rÿ  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r  r"  r#  r$  r%  r(  r)  r+  r,  r.  r/  r0  r1  r3  r4  rO  rV  rY  r\  r_  ra  rc  rY   rY   rY   rZ   Ú<module>   sî  ,d	#
'-		
		E	

X	 
			
						#		
			
		
			