o
    àý°jRÇ  ã                   @   s–  d dl mZ d dl mZ d dlm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Z/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8dZ9d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&ZMd'ZNd(ZOdZPdZQdZRdZSd ZTdZUdZVdZWd)ZXd ZYdZZdZ[dZ\dZ]d$Z^d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|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�d0Z�d+Z‘d1Z’d2Z“d,Z”d3Z•d4Z–dZ—d5Z˜d6Z™dZšdZ›dZœdZ�dZždZŒd7ZŸd8Z d9Z¡d:Z¢d;Z£d<Z¤d=Z¥d>Z¦d?Z§d?Z¨d@Z©dAZªdBZ«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ÀdCZÁdDZÂdEZÃdFZÄdGZÅdHZÆdIZÇdJZÈdKZÉdLZÊdMZËdNZÌdOZÍdPZÎdQZÏdRZÐdZÑdZÒdZÓdZÔdZÕdZÖdZ×dZØdZÙdZÚdSZÛdZÜdTZÝ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üdUZýdVZþdWZÿd�Z d�ZdX�Zd�Zd�Zd�ZdY�Zd�Zd�ZdZ�Z	dT�Z
dS�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da�Zdb�Zdc�Zd�Zd�Zd�Zdd�Zde�Zdf�Z d	�Z!dg�Z"dh�Z#di�Z$dj�Z%d�Z&d�Z'd�Z(d�Z)d	�Z*d
�Z+d�Z,d�Z-d�Z.d�Z/d�Z0d�Z1d�Z2d�Z3d�Z4d�Z5d�Z6d�Z7d�Z8d�Z9G dkdl„ dleƒ�Z:G dmdn„ dn�e:ƒ�Z;G dodp„ dp�e:ƒ�Z<G dqdr„ dr�e:ƒ�Z=G dsdt„ dt�e:ƒ�Z>G dudv„ dveƒ�Z?G dwdx„ dxeƒ�Z@G dydz„ dzeƒ�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ƒZ¢G d§d¨„ d¨eƒZ¡G d©dª„ dªeƒ�ZWG d«d¬„ d¬eƒZ¤G d­d®„ d®eƒ�ZXG d¯d°„ d°eƒZ£G d±d²„ d²eƒZ¥G d³d´„ d´eƒ�ZY�eY�ZZG 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ƒ�ZaG dËdÌ„ dÌeƒ�ZbG dÍdÎ„ dÎeƒ�ZcG dÏdÐ„ dÐeƒ�ZdG dÑdÒ„ dÒeƒ�Ze�ee�Zf�ee�ZgG dÓdÔ„ dÔeƒ�ZhG dÕdÖ„ dÖeƒ�Zi�ei�ZjG d×dØ„ dØeƒ�ZkG dÙdÚ„ dÚeƒ�ZlG dÛdÜ„ dÜeƒ�ZmG dÝdÞ„ dÞeƒ�Zn�en�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 �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/�d0„ �d0eƒ�Z–G �d1�d2„ �d2eƒ�Z—G �d3�d4„ �d4eƒ�Z˜G �d5�d6„ �d6eƒ�Z™G �d7�d8„ �d8eƒ�ZšG �d9�d:„ �d:eƒ�Z›�d;S (<  é    )Údivision)Úprint_function)Ú	Structureé@   é   é   é   é   é   é   é   é   é	   é
   é   é   é   é   é   é   é   é   i   l        é    i  i  i   i  i  iÿ  é0   é   i   i   i   i   i    i @  i €  éÿ   é€   i   i   i    i  @ i  € i   i   i   i   i   i    i   @iAtxEiDceSiQnHDiCnHDiiSlAicAxMiprWTidiFQisLqRiQ2HDiC2HDl	   tM(\iG ©tþt»S^E i” i@ i  iÀ iò@ id@ ix  i»A iò€ iÔ iü i¤ 	 i¬ 	 i° i‚	 i é&   é%   é   é   é#   é   é   é.   é2   é   é   é   é"   é   é   é   é   é!   é,   é-   é6   é   é$   é'   c                   @   s&   e Zd Zdd„ Zdd„ Zddd„ZdS )	ÚSMBPacketBasec                 C   s   t dƒ‚)NzImplement This!)Ú	Exception)ÚselfÚcommand© r9   ú‡/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/impacket/smb3structs.pyÚ
addCommandË  s   zSMBPacketBase.addCommandc                 C   s,   | d |krddl m} | | d | ¡‚dS )NÚStatusr   )Úsmb3T)Ú r=   ÚSessionError)r7   Ústatusr=   r9   r9   r:   ÚisValidAnswerÏ  s   zSMBPacketBase.isValidAnswerNc                 C   ó$   t  | |¡ |d u rd| d< d S d S )Nr   ÚTreeID©r   Ú__init__©r7   Údatar9   r9   r:   rE   Õ  ó   ÿzSMBPacketBase.__init__©N)Ú__name__Ú
__module__Ú__qualname__r;   rA   rE   r9   r9   r9   r:   r5   Ê  s    r5   c                   @   ó   e Zd ZdZdS )ÚSMB2PacketAsync)©Ú
ProtocolIDu   "Ã¾SMB©ÚStructureSizez<H=64©ÚCreditChargeú<H=0©r<   ú<L=0©ÚCommandrU   ©ÚCreditRequestResponserU   ©ÚFlagsrW   ©ÚNextCommandrW   ©Ú	MessageIDú<Q=0©ÚAsyncIDrb   ©Ú	SessionIDrb   ©Ú	Signatureú16s=""©ÚDataú:=""N©rJ   rK   rL   Ú	structurer9   r9   r9   r:   rN   Û  ó    rN   c                   @   rM   )ÚSMB3PacketAsync)rO   rQ   rS   ©ÚChannelSequencerU   ©ÚReservedrU   rX   rZ   r\   r^   r`   rc   re   rg   rj   Nrm   r9   r9   r9   r:   rp   ì  ro   rp   c                   @   rM   )Ú
SMB2Packet)rO   rQ   rS   rV   rX   rZ   r\   r^   r`   ©rt   rW   ©rC   rW   re   rg   rj   Nrm   r9   r9   r9   r:   ru   þ  ro   ru   c                   @   rM   )Ú
SMB3Packet)rO   rQ   rS   rq   rs   rX   rZ   r\   r^   r`   rv   rw   re   rg   rj   Nrm   r9   r9   r9   r:   rx     ro   rx   c                   @   s   e Zd ZdS )ÚEmptyN)rJ   rK   rL   r9   r9   r9   r:   ry   $  s    ry   c                   @   rM   )Ú	SMB2Error)©rR   z<H=9rs   )Ú	ByteCountrW   )Ú
_ErrorDataz_-ErrorDatazself["ByteCount"])Ú	ErrorDatau   "Ã¿Nrm   r9   r9   r9   r:   rz   &  ro   rz   c                   @   rM   )ÚSMB2ErrorSymbolicLink))ÚSymLinkLengthrW   )ÚSymLinkErrorTagrW   ©Ú
ReparseTagrW   )ÚReparseDataLenghtrU   )ÚUnparsedPathLengthrU   ©ÚSubstituteNameOffsetrU   ©ÚSubstituteNameLengthrU   ©ÚPrintNameOffsetrU   ©ÚPrintNameLengthrU   r\   ©Ú
PathBufferú:Nrm   r9   r9   r9   r:   r   /  ro   r   c                   @   rM   )ÚSMB2Negotiate)
©rR   z<H=36)ÚDialectCountrU   ©ÚSecurityModerU   rs   ©ÚCapabilitiesrW   )Ú
ClientGuidri   )ÚClientStartTimeú8s="")ÚDialectsz*<H©ÚPaddingrl   ©ÚNegotiateContextListrl   Nrm   r9   r9   r9   r:   r‘   ?  ro   r‘   c                   @   rM   )ÚSMB311ContextData)©ÚNegotiateContextOffsetrW   ©ÚNegotiateContextCountrU   )Ú	Reserved2rU   Nrm   r9   r9   r9   r:   r    N  ro   r    c                   @   rM   )ÚSMB2Negotiate_Response))rR   z<H=65r”   )ÚDialectRevisionrU   r£   )Ú
ServerGuidri   r–   )ÚMaxTransactSizerW   )ÚMaxReadSizerW   )ÚMaxWriteSizerW   )Ú
SystemTimerb   )ÚServerStartTimerb   ©ÚSecurityBufferOffsetrU   ©ÚSecurityBufferLengthrU   r¡   ©Ú	_AlignPadú
_-AlignPadz?self["SecurityBufferOffset"] - (64 + self["StructureSize"] - 1)©ÚAlignPadrl   ©Ú_Bufferú_-Bufferzself["SecurityBufferLength"]©ÚBufferr�   )Ú_Paddingz	_-PaddingzŒ0 if self["NegotiateContextOffset"] == 0 else (self["NegotiateContextOffset"] - self["SecurityBufferOffset"] - self["SecurityBufferLength"])rœ   )Ú_NegotiateContextListz_-NegotiateContextListza0 if self["NegotiateContextOffset"] == 0 else len(self.rawData)-self["NegotiateContextOffset"]+64rž   Nrm   r9   r9   r9   r:   r¦   T  ro   r¦   c                   @   rM   )ÚSMB2NegotiateContext))ÚContextTyperU   )Ú
DataLengthrU   rv   )Ú_Dataz_-Dataúself["DataLength"]rj   Nrm   r9   r9   r9   r:   r¾   s  ro   r¾   c                   @   rM   )Ú SMB2PreAuthIntegrityCapabilities))ÚHashAlgorithmCountrU   )Ú
SaltLengthrU   )Ú_HashAlgorithmsz_-HashAlgorithmszself["HashAlgorithmCount"]*2)ÚHashAlgorithmsrl   )ÚSaltrl   Nrm   r9   r9   r9   r:   rÃ   }  ro   rÃ   c                   @   rM   )ÚSMB2EncryptionCapabilities))ÚCipherCountrU   )ÚCiphersrl   Nrm   r9   r9   r9   r:   rÉ   ‡  ro   rÉ   c                   @   rM   )ÚSMB2CompressionCapabilities))ÚCompressionAlgorithmCountrU   )r�   rU   r\   )ÚCompressionAlgorithmsrl   Nrm   r9   r9   r9   r:   rÌ   Ž  ro   rÌ   c                   @   rM   )ÚSMB2NetNameNegotiateContextID))ÚNetNamerl   Nrm   r9   r9   r9   r:   rÏ   —  ro   rÏ   c                   @   s&   e Zd ZdZdZddd„Zdd„ ZdS )	ÚSMB2SessionSetupr,   ))rR   z<H=25©r]   ú<B=0)r•   rÓ   r–   ©ÚChannelrW   )r¯   ú+<H=(self.SIZE + 64 + len(self["AlignPad"]))r°   )ÚPreviousSessionIdrb   r²   rµ   r·   rº   Nc                 C   rB   ©Nr>   r¶   rD   rF   r9   r9   r:   rE   ®  rH   zSMB2SessionSetup.__init__c                 C   s
   t  | ¡S rI   )r   ÚgetData)r7   r9   r9   r:   rÙ   ³  s   
zSMB2SessionSetup.getDatarI   )rJ   rK   rL   ÚSIZErn   rE   rÙ   r9   r9   r9   r:   rÑ   �  s
    
rÑ   c                   @   rM   )ÚSMB2SessionSetup_Response)r{   )ÚSessionFlagsrU   r®   r°   r²   rµ   r·   rº   Nrm   r9   r9   r9   r:   rÛ   º  ro   rÛ   c                   @   rM   )Ú
SMB2Logoff©)rR   z<H=4rs   Nrm   r9   r9   r9   r:   rÝ   Ç  ro   rÝ   c                   @   rM   )ÚSMB2Logoff_ResponserÞ   Nrm   r9   r9   r9   r:   rß   Î  ro   rß   c                   @   ó   e Zd ZdZdZddd„ZdS )ÚSMB2TreeConnectr   )r{   rs   )Ú
PathOffsetrÖ   )Ú
PathLengthrU   )r³   r´   z)self["PathOffset"] - (64 + self.SIZE - 1)rµ   )r¸   r¹   zself["PathLength"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   á  rH   zSMB2TreeConnect.__init__rI   ©rJ   rK   rL   rÚ   rn   rE   r9   r9   r9   r:   rá   Õ  s    
rá   c                   @   rM   )ÚSMB2TreeConnect_Response))rR   z<H=16)Ú	ShareTyperÓ   ©rt   rÓ   )Ú
ShareFlagsrW   r–   ©ÚMaximalAccessrW   Nrm   r9   r9   r9   r:   rå   æ  ro   rå   c                   @   rM   )ÚSMB2TreeDisconnectrÞ   Nrm   r9   r9   r9   r:   rë   ñ  ro   rë   c                   @   rM   )ÚSMB2TreeDisconnect_ResponserÞ   Nrm   r9   r9   r9   r:   rì   ÷  ro   rì   c                   @   rà   )Ú
SMB2Createé8   )©rR   z<H=57)ÚSecurityFlagsrÓ   )ÚRequestedOplockLevelrÓ   )ÚImpersonationLevelrW   )ÚSmbCreateFlagsrb   ©rt   rb   )ÚDesiredAccessrW   ©ÚFileAttributesrW   )ÚShareAccessrW   )ÚCreateDispositionrW   )ÚCreateOptionsrW   )Ú
NameOffsetrÖ   ©Ú
NameLengthrU   ©ÚCreateContextsOffsetrW   ©ÚCreateContextsLengthrW   )r³   r´   z5self["NameOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   z/self["CreateContextsLength"]+self["NameLength"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE     rH   zSMB2Create.__init__rI   rä   r9   r9   r9   r:   rí   þ  s    rí   c                   @   rM   )ÚSMB2CreateContext)©ÚNextrW   )rû   rU   rü   rs   )Ú
DataOffsetrU   ©rÀ   rW   )r¸   r¹   z%self["DataLength"]+self["NameLength"]rº   Nrm   r9   r9   r9   r:   r    ro   r  c                   @   rM   )ÚSMB2_FILEID))Ú
Persistentrb   )ÚVolatilerb   Nrm   r9   r9   r9   r:   r  &  ro   r  c                   @   s<   e Zd Zddddddddd	d
ddddefddddddfZdS )ÚSMB2Create_Response)rR   z<H=89©ÚOplockLevelrÓ   rÒ   )ÚCreateActionrW   ©ÚCreationTimerb   ©ÚLastAccessTimerb   ©ÚLastWriteTimerb   ©Ú
ChangeTimerb   ©ÚAllocationSizerb   )Ú	EndOfFilerb   rö   ©r¥   rW   ÚFileIDr�   rþ   r   )r³   r´   z?self["CreateContextsOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   zself["CreateContextsLength"]rº   N©rJ   rK   rL   r  rn   r9   r9   r9   r:   r
  ,  s*    ír
  c                   @   rM   )ÚFILE_FULL_EA_INFORMATION)©ÚNextEntryOffsetrW   rÒ   )ÚEaNameLengthrÓ   )ÚEaValueLengthrU   )Ú_EaNamez_-EaNamezself["EaNameLength"])ÚEaNamer�   )Ú_EaValuez	_-EaValuezself["EaValue"])ÚEaValuer�   Nrm   r9   r9   r9   r:   r  C  ro   r  c                   @   s   e Zd ZddeffZdS )Ú$SMB2_CREATE_DURABLE_HANDLE_RECONNECTrk   r�   Nr  r9   r9   r9   r:   r%  P  s    ÿr%  c                   @   rM   )Ú"SMB2_CREATE_DURABLE_HANDLE_REQUEST))ÚDurableRequestri   Nrm   r9   r9   r9   r:   r&  U  ro   r&  c                   @   rM   )Ú#SMB2_CREATE_DURABLE_HANDLE_RESPONSE)rô   Nrm   r9   r9   r9   r:   r(  Z  ro   r(  c                   @   rM   )Ú(SMB2_CREATE_QUERY_MAXIMAL_ACCESS_REQUEST©)Ú	Timestamprb   Nrm   r9   r9   r9   r:   r)  _  ro   r)  c                   @   rM   )Ú)SMB2_CREATE_QUERY_MAXIMAL_ACCESS_RESPONSE))ÚQueryStatusrW   ré   Nrm   r9   r9   r9   r:   r,  d  ro   r,  c                   @   rM   )ÚSMB2_CREATE_ALLOCATION_SIZE)r  Nrm   r9   r9   r9   r:   r.  j  ro   r.  c                   @   rM   )ÚSMB2_CREATE_TIMEWARP_TOKENr*  Nrm   r9   r9   r9   r:   r/  o  ro   r/  c                   @   rM   )ÚSMB2_CREATE_REQUEST_LEASE)©ÚLeaseKeyri   ©Ú
LeaseStaterW   )Ú
LeaseFlagsrW   ©ÚLeaseDurationrb   Nrm   r9   r9   r9   r:   r0  t  ro   r0  c                   @   rM   )ÚSMB2_CREATE_REQUEST_LEASE_V2)r1  r3  r\   r6  )ÚParentLeaseKeyri   )ÚEpochrU   rs   Nrm   r9   r9   r9   r:   r8  ~  ro   r8  c                   @   rM   )Ú%SMB2_CREATE_DURABLE_HANDLE_REQUEST_V2)©ÚTimeoutrW   r\   )rt   rš   ©Ú
CreateGuidri   Nrm   r9   r9   r9   r:   r;  ‹  ro   r;  c                   @   rM   )Ú&SMB2_CREATE_DURABLE_HANDLE_RESPONSE_V2)r<  r\   Nrm   r9   r9   r9   r:   r@  “  ro   r@  c                   @   s   e Zd ZddefddfZdS )Ú'SMB2_CREATE_DURABLE_HANDLE_RECONNECT_V2r  r�   r>  r\   Nr  r9   r9   r9   r:   rA  ™  s
    ýrA  c                   @   rM   )ÚSMB2_CREATE_APP_INSTANCE_ID))rR   rU   rs   )ÚAppInstanceIdri   Nrm   r9   r9   r9   r:   rB     ro   rB  c                   @   rM   )ÚSMB2_CREATE_QUERY_ON_DISK_ID))ÚDiskIDBufferz32s=""Nrm   r9   r9   r9   r:   rD  §  ro   rD  c                   @   ó   e Zd ZdddddeffZdS )Ú	SMB2Close©rR   z<H=24©r]   rU   rv   r  r�   Nr  r9   r9   r9   r:   rG  °  ó    ürG  c                   @   rM   )ÚSMB2Close_Response)
)rR   z<H=60rI  rv   r  r  r  r  r  )Ú	EndofFilerb   rö   Nrm   r9   r9   r9   r:   rK  ¸  ro   rK  c                   @   rF  )Ú	SMB2FlushrH  )Ú	Reserved1rU   r  r  r�   Nr  r9   r9   r9   r:   rM  Ç  rJ  rM  c                   @   rM   )ÚSMB2Flush_ResponserÞ   Nrm   r9   r9   r9   r:   rO  Ï  ro   rO  c                   @   sB   e Zd ZdZdddddddefd	d
dddddddfZddd„ZdS )ÚSMB2Readr   ©rR   z<H=49©r�   rÓ   rç   ©ÚLengthrW   ©ÚOffsetrb   r  r�   )ÚMinimumCountrW   rÔ   ©ÚRemainingBytesrW   )ÚReadChannelInfoOffsetrU   )ÚReadChannelInfoLengthrU   )r³   r´   z@self["ReadChannelInfoOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   zself["ReadChannelInfoLength"])r»   z:="0"Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   é  rH   zSMB2Read.__init__rI   ©rJ   rK   rL   rÚ   r  rn   rE   r9   r9   r9   r:   rP  Ö  s&    ñrP  c                   @   rM   )ÚSMB2Read_Response)
©rR   z<H=17)r  rÓ   rç   r  )ÚDataRemainingrW   r  )r³   r´   z5self["DataOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   rÂ   rº   Nrm   r9   r9   r9   r:   r]  ï  ro   r]  c                   @   s@   e Zd ZdZddddddefdd	d
ddddddfZddd„ZdS )Ú	SMB2Writer   rQ  )r  rÖ   rS  rU  r  r�   rÔ   rX  ©ÚWriteChannelInfoOffsetrU   ©ÚWriteChannelInfoLengthrU   )r³   r´   zVself["DataOffset"] + self["WriteChannelInfoOffset"] - (64 + self["StructureSize"] - 1)rµ   r\   )r¸   r¹   z-self["Length"]+self["WriteChannelInfoLength"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE     rH   zSMB2Write.__init__rI   r\  r9   r9   r9   r:   r`  þ  s$    òr`  c                   @   rM   )ÚSMB2Write_Response)r^  rs   )ÚCountrW   )Ú	RemainingrW   ra  rc  Nrm   r9   r9   r9   r:   re    ro   re  c                   @   s    e Zd ZddddddeffZdS )ÚSMB2OplockBreakNotificationrH  r  rç   r  r  r�   Nr  r9   r9   r9   r:   rh     s    ûrh  c                   @   rM   )ÚSMB2LeaseBreakNotification)	)rR   z<H=44)ÚNewEpochrU   r\   r1  )ÚCurrentLeaseStaterW   )ÚNewLeaseStaterW   )ÚBreakReasonrW   )ÚAccessMaskHintrW   )ÚShareMaskHintrW   Nrm   r9   r9   r9   r:   ri  ,  ro   ri  c                   @   rM   )ÚSMB2LeaseBreakAcknowledgement)r’   rs   r\   r1  r3  r6  Nrm   r9   r9   r9   r:   rp  9  ro   rp  c                   @   rM   )ÚSMB2_LOCK_ELEMENT)rU  )rT  rb   r\   rv   Nrm   r9   r9   r9   r:   rq  F  ro   rq  c                   @   ó"   e Zd ZdddddefddfZdS )	ÚSMB2Lock)rR   z<H=48)Ú	LockCountrU   )ÚLockSequencerW   r  r�   )Ú_Locksz_-Lockszself["LockCount"]*24)ÚLocksr�   Nr  r9   r9   r9   r:   rs  N  ó    úrs  c                   @   rM   )ÚSMB2Lock_ResponserÞ   Nrm   r9   r9   r9   r:   ry  X  ro   ry  c                   @   rM   )ÚSMB2EchorÞ   Nrm   r9   r9   r9   r:   rz  `  ro   rz  c                   @   rM   )Ú
SMB2CancelrÞ   Nrm   r9   r9   r9   r:   r{  i  ro   r{  c                   @   s@   e Zd ZdZdddddefddd	d
ddddddfZddd„ZdS )Ú	SMB2Ioctlrî   rï   rs   ©ÚCtlCoderW   r  r�   )ÚInputOffsetz+<L=(self.SIZE + 64 + len(self["AlignPad"]))©Ú
InputCountrW   )ÚMaxInputResponserW   )ÚOutputOffsetz@<L=(self.SIZE + 64 + len(self["AlignPad"]) + self["InputCount"])©ÚOutputCountrW   )ÚMaxOutputResponserW   r\   r  ©r¸   r¹   z&self["InputCount"]+self["OutputCount"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   „  rH   zSMB2Ioctl.__init__rI   r\  r9   r9   r9   r:   r|  p  s$    ðr|  c                   @   rM   )ÚFSCTL_PIPE_WAIT_STRUCTURE))r=  ú<q=0)rý   rW   )ÚTimeoutSpecifiedrÓ   rR  )Ú_Namez_-Namezself["NameLength"])ÚNamer�   Nrm   r9   r9   r9   r:   rˆ  ‰  ro   rˆ  c                   @   rM   )ÚSRV_COPYCHUNK_COPY))Ú	SourceKeyú24s="")Ú
ChunkCountrW   rv   )Ú_Chunksz_-Chunksz%self["ChunkCount"]*len(SRV_COPYCHUNK))ÚChunksr�   Nrm   r9   r9   r9   r:   r�  “  ro   r�  c                   @   rM   )ÚSRV_COPYCHUNK))ÚSourceOffsetrb   )ÚTargetOffsetrb   rS  rv   Nrm   r9   r9   r9   r:   r“  œ  ro   r“  c                   @   rM   )ÚSRV_COPYCHUNK_RESPONSE))ÚChunksWrittenrW   )ÚChunkBytesWrittenrW   )ÚTotalBytesWrittenrW   Nrm   r9   r9   r9   r:   r–  ¤  ro   r–  c                   @   rM   )ÚSRV_READ_HASH)©ÚHashTyperW   ©ÚHashVersionrW   )ÚHashRetrievalTyperW   rS  rU  Nrm   r9   r9   r9   r:   rš  «  ro   rš  c                   @   rM   )ÚNETWORK_RESILIENCY_REQUEST)r<  rv   Nrm   r9   r9   r9   r:   r   ´  ro   r   c                   @   rM   )ÚVALIDATE_NEGOTIATE_INFO)r–   ©ÚGuidri   r”   )r›   z<H*<HNrm   r9   r9   r9   r:   r¡  º  ro   r¡  c                   @   rM   )Ú VALIDATE_NEGOTIATE_INFO_RESPONSE)r–   r¢  r”   )ÚDialectz<HNrm   r9   r9   r9   r:   r¤  Ã  ro   r¤  c                   @   rM   )ÚSRV_SNAPSHOT_ARRAY))ÚNumberOfSnapShotsrW   )ÚNumberOfSnapShotsReturnedrW   )ÚSnapShotArraySizerW   )Ú
_SnapShotsz_-SnapShotszself["SnapShotArraySize"])Ú	SnapShotsr�   Nrm   r9   r9   r9   r:   r¦  Ë  ro   r¦  c                   @   rM   )ÚSRV_REQUEST_RESUME_KEY))Ú	ResumeKeyr�  )ÚContextLengthrW   )Ú_Contextz	_-Contextzself["ContextLength"])ÚContextr�   Nrm   r9   r9   r9   r:   r¬  Ô  ro   r¬  c                   @   rM   )ÚHASH_HEADER)
r›  r�  )ÚSourceFileChangeTimerb   )ÚSourceFileSizerb   )ÚHashBlobLengthrW   )ÚHashBlobOffsetrW   )ÚDirtyrU   )ÚSourceFileNameLengthrW   )Ú_SourceFileNamez_-SourceFileNamezself["SourceFileNameLength"])ÚSourceFileNamer�   Nrm   r9   r9   r9   r:   r±  Ü  ro   r±  c                   @   rM   )ÚSRV_HASH_RETRIEVE_HASH_BASED)rU  ©ÚBufferLengthrW   rv   ©r¸   r¹   zself["BufferLength"]rº   Nrm   r9   r9   r9   r:   rº  ê  ro   rº  c                   @   rM   )ÚSRV_HASH_RETRIEVE_FILE_BASED))ÚFileDataOffsetrb   )ÚFileDataLengthrb   r»  rv   r½  rº   Nrm   r9   r9   r9   r:   r¾  ó  ro   r¾  c                   @   rM   )ÚNETWORK_INTERFACE_INFO)r  )ÚIfIndexrW   )Ú
CapabilityrW   rv   )Ú	LinkSpeedrb   )ÚSockAddr_Storagez128s=""Nrm   r9   r9   r9   r:   rÁ  ý  ro   rÁ  c                   @   rM   )Ú"MOUNT_POINT_REPARSE_DATA_STRUCTURE)©rƒ   z<L=0xA0000003)ÚReparseDataLenz<H=len(self['PathBuffer']) + 8rs   r†   rˆ   rŠ   rŒ   rŽ   Nrm   r9   r9   r9   r:   rÆ    ro   rÆ  c                   @   rM   )Ú'MOUNT_POINT_REPARSE_GUID_DATA_STRUCTURE)rÇ  )rÈ  z<H=len(self['DataBuffer'])rs   )ÚReparseGuidz16s='')Ú
DataBufferr�   Nrm   r9   r9   r9   r:   rÉ    ro   rÉ  c                   @   s2   e Zd Zdddddefdddd	d
dddddfZdS )ÚSMB2Ioctl_ResponserQ  rs   r}  r  r�   )r  rW   r€  )rƒ  rW   r„  r\   r  )r³   r´   z7self["OutputOffset"] - (64 + self["StructureSize"] - 1)rµ   r‡  rº   Nr  r9   r9   r9   r:   rÌ    s     òrÌ  c                   @   s<   e Zd ZdZddddddefdd	d
ddddfZddd„ZdS )ÚSMB2QueryDirectoryr   ©rR   z<H=33)ÚFileInformationClassrÓ   rÒ   )Ú	FileIndexrW   r  r�   )ÚFileNameOffsetrÖ   )ÚFileNameLengthrU   ©ÚOutputBufferLengthrW   )r³   r´   z9self["FileNameOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   úself["FileNameLength"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   ?  rH   zSMB2QueryDirectory.__init__rI   r\  r9   r9   r9   r:   rÍ  /  s     ôrÍ  c                   @   rM   )ÚSMB2QueryDirectory_Response©r{   )ÚOutputBufferOffsetrU   rÓ  )r³   r´   z=self["OutputBufferOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   zself["OutputBufferLength"]rº   Nrm   r9   r9   r9   r:   rÖ  D  ro   rÖ  c                   @   rr  )	ÚSMB2ChangeNotify)rR   z<H=32rI  rÓ  r  r�   )ÚCompletionFilterrW   rv   Nr  r9   r9   r9   r:   rÙ  P  rx  rÙ  c                   @   rM   )ÚSMB2ChangeNotify_Responser×  Nrm   r9   r9   r9   r:   rÛ  Z  ro   rÛ  c                   @   rM   )ÚFILE_NOTIFY_INFORMATION)r  )ÚActionrW   ©rÒ  rW   ©Ú	_FileNamez
_-FileNamerÕ  ©ÚFileNamer�   Nrm   r9   r9   r9   r:   rÜ  e  ro   rÜ  c                   @   s@   e Zd ZdZdddddddd	d
ddefddddfZddd„ZdS )ÚSMB2QueryInfoé(   )rR   z<H=41©ÚInfoTyperÓ   ©ÚFileInfoClassrÓ   rÓ  )ÚInputBufferOffsetrÖ   rs   )ÚInputBufferLengthrW   ©ÚAdditionalInformationrW   r\   r  r�   )r³   r´   z<self["InputBufferOffset"] - (64 + self["StructureSize"] - 1)rµ   )r¸   r¹   zself["InputBufferLength"]rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   �  rH   zSMB2QueryInfo.__init__rI   r\  r9   r9   r9   r:   rã  o  s$    òrã  c                   @   rM   )ÚSMB2_QUERY_QUOTA_INFO))ÚReturnSinglerÓ   )ÚRestartScanrÓ   rs   )ÚSidListLengthrW   )ÚStartSidLengthrW   )ÚStartSidOffsetrW   )Ú	SidBufferr�   Nrm   r9   r9   r9   r:   rí  ‡  ro   rí  c                   @   rM   )ÚSMB2QueryInfo_Responser×  Nrm   r9   r9   r9   r:   rô  “  ro   rô  c                   @   rM   )ÚFILE_BASIC_INFORMATION))r  ú<q)r  rö  )r  rö  )r  rö  ©r÷   ú<Lrv   Nrm   r9   r9   r9   r:   rõ  ž  ro   rõ  c                   @   rM   )ÚFILE_STANDARD_INFORMATION))r  rö  )r  rö  )ÚNumberOfLinksrø  )ÚDeletePendingrÓ   )Ú	Directoryz<Brs   Nrm   r9   r9   r9   r:   rù  ¨  ro   rù  c                   @   rM   )ÚFILE_INTERNAL_INFORMATION))ÚIndexNumberr‰  Nrm   r9   r9   r9   r:   rý  ²  ro   rý  c                   @   rM   )ÚFILE_EA_INFORMATION))ÚEaSizerø  Nrm   r9   r9   r9   r:   rÿ  ·  ro   rÿ  c                   @   rM   )ÚFILE_ACCESS_INFORMATION))ÚAccessFlagsrø  Nrm   r9   r9   r9   r:   r  ¼  ro   r  c                   @   rM   )ÚFILE_POSITION_INFORMATION))ÚCurrentByteOffsetz<QNrm   r9   r9   r9   r:   r  Á  ro   r  c                   @   rM   )ÚFILE_MODE_INFORMATION))ÚModerW   Nrm   r9   r9   r9   r:   r  Æ  ro   r  c                   @   rM   )ÚFILE_ALIGNMENT_INFORMATION))ÚAlignmentRequirementrø  Nrm   r9   r9   r9   r:   r  Ë  ro   r  c                   @   rM   )ÚFILE_NAME_INFORMATION)rÞ  rß  rá  Nrm   r9   r9   r9   r:   r	  Ð  ro   r	  c                   @   sX   e Zd Zddefddefddefddefddefddefdde	fd	de
fd
deff	ZdS )ÚFILE_ALL_INFORMATIONÚBasicInformationr�   ÚStandardInformationÚInternalInformationÚEaInformationÚAccessInformationÚPositionInformationÚModeInformationÚAlignmentInformationÚNameInformationN)rJ   rK   rL   rõ  rù  rý  rÿ  r  r  r  r  r	  rn   r9   r9   r9   r:   r
  ×  s    ÷r
  c                   @   rM   )ÚFILE_ATTRIBUTE_TAG_INFORMATION)r÷  r‚   Nrm   r9   r9   r9   r:   r  ä  ro   r  c                   @   s<   e Zd ZdZdddddddd	d
efddddfZddd„ZdS )ÚSMB2SetInfor   rÎ  rå  rç  r»  )ÚBufferOffsetrÖ   rs   rë  r  r�   )r³   r´   z7self["BufferOffset"] - (64 + self["StructureSize"] - 1)rµ   r½  rº   Nc                 C   rB   rØ   rD   rF   r9   r9   r:   rE   û  rH   zSMB2SetInfo.__init__rI   r\  r9   r9   r9   r:   r  ë  s     ôr  c                   @   rM   )ÚSMB2SetInfo_Response))rR   z<H=2Nrm   r9   r9   r9   r:   r     ro   r  c                   @   rM   )ÚFILE_RENAME_INFORMATION_TYPE_2))ÚReplaceIfExistsrÓ   )rt   z7s="")ÚRootDirectoryrb   rÞ  rß  rá  Nrm   r9   r9   r9   r:   r    ro   r  c                   @   rM   )ÚSMB2_TRANSFORM_HEADER))rP   u   "Ã½SMBrg   )ÚNonceri   )ÚOriginalMessageSizerW   rs   )ÚEncryptionAlgorithmrU   re   Nrm   r9   r9   r9   r:   r    ro   r  c                   @   rM   )Ú!SMB2_COMPRESSION_TRANSFORM_HEADER))rP   rW   )ÚOriginalCompressedSegmentSizerW   )ÚCompressionAlgorithmrU   rI  )ÚOffset_LengthrW   Nrm   r9   r9   r9   r:   r    ro   r  c                   @   rM   )ÚSMB2_COMPRESSION_PAYLOAD_HEADER))ÚAlgorithmIdrU   rs   rS  Nrm   r9   r9   r9   r:   r#  #  ro   r#  c                   @   rM   )Ú#SMB2_COMPRESSION_PATTERN_PAYLOAD_V1))ÚPatternúB=0)rN  r'  )r¥   r'  )ÚRepetitionsrW   Nrm   r9   r9   r9   r:   r%  *  ro   r%  c                   @   rM   )ÚFileSecInformation))ÚRevisionz<h=1)ÚTypez<h=0)ÚOffsetToOwnerú<I=0)ÚOffsetToGroupr-  )ÚOffsetToSACLr-  )ÚOffsetToDACLr-  Nrm   r9   r9   r9   r:   r)  3  ro   r)  N(œ  Ú
__future__r   r   Úimpacket.structurer   ÚSMB2_PACKET_SIZEÚSMB2_NEGOTIATEÚSMB2_SESSION_SETUPÚSMB2_LOGOFFÚSMB2_TREE_CONNECTÚSMB2_TREE_DISCONNECTÚSMB2_CREATEÚ
SMB2_CLOSEÚ
SMB2_FLUSHÚ	SMB2_READÚ
SMB2_WRITEÚ	SMB2_LOCKÚ
SMB2_IOCTLÚSMB2_CANCELÚ	SMB2_ECHOÚSMB2_QUERY_DIRECTORYÚSMB2_CHANGE_NOTIFYÚSMB2_QUERY_INFOÚSMB2_SET_INFOÚSMB2_OPLOCK_BREAKÚSMB2_FLAGS_SERVER_TO_REDIRÚSMB2_FLAGS_ASYNC_COMMANDÚSMB2_FLAGS_RELATED_OPERATIONSÚSMB2_FLAGS_SIGNEDÚSMB2_FLAGS_DFS_OPERATIONSÚSMB2_FLAGS_REPLAY_OPERATIONÚSYMLINK_FLAG_ABSOLUTEÚSYMLINK_FLAG_RELATIVEÚSMB2_NEGOTIATE_SIGNING_ENABLEDÚSMB2_NEGOTIATE_SIGNING_REQUIREDÚ#SMB2_PREAUTH_INTEGRITY_CAPABILITIESÚSMB2_ENCRYPTION_CAPABILITIESÚSMB2_COMPRESSION_CAPABILITIESÚ!SMB2_NETNAME_NEGOTIATE_CONTEXT_IDÚ'SMB2_COMPRESSION_CAPABILITIES_FLAG_NONEÚ*SMB2_COMPRESSION_CAPABILITIES_FLAG_CHAINEDÚCOMPRESSION_ALGORITHM_NONEÚCOMPRESSION_ALGORITHM_LZNT1ÚCOMPRESSION_ALGORITHM_LZ77Ú"COMPRESSION_ALGORITHM_LZ77_HUFFMANÚ COMPRESSION_ALGORITHM_PATTERN_V1ÚSMB2_GLOBAL_CAP_DFSÚSMB2_GLOBAL_CAP_LEASINGÚSMB2_GLOBAL_CAP_LARGE_MTUÚSMB2_GLOBAL_CAP_MULTI_CHANNELÚ"SMB2_GLOBAL_CAP_PERSISTENT_HANDLESÚ!SMB2_GLOBAL_CAP_DIRECTORY_LEASINGÚSMB2_GLOBAL_CAP_ENCRYPTIONÚSMB2_DIALECT_002ÚSMB2_DIALECT_21ÚSMB2_DIALECT_30ÚSMB2_DIALECT_302ÚSMB2_DIALECT_311ÚSMB2_DIALECT_WILDCARDÚSMB2_SESSION_FLAG_BINDINGÚSMB2_SESSION_FLAG_IS_GUESTÚSMB2_SESSION_FLAG_IS_NULLÚSMB2_SESSION_FLAG_ENCRYPT_DATAÚSMB2_SHARE_TYPE_DISKÚSMB2_SHARE_TYPE_PIPEÚSMB2_SHARE_TYPE_PRINTÚSMB2_SHAREFLAG_MANUAL_CACHINGÚSMB2_SHAREFLAG_AUTO_CACHINGÚSMB2_SHAREFLAG_VDO_CACHINGÚSMB2_SHAREFLAG_NO_CACHINGÚSMB2_SHAREFLAG_DFSÚSMB2_SHAREFLAG_DFS_ROOTÚ'SMB2_SHAREFLAG_RESTRICT_EXCLUSIVE_OPENSÚ"SMB2_SHAREFLAG_FORCE_SHARED_DELETEÚ&SMB2_SHAREFLAG_ALLOW_NAMESPACE_CACHINGÚ*SMB2_SHAREFLAG_ACCESS_BASED_DIRECTORY_ENUMÚ#SMB2_SHAREFLAG_FORCE_LEVELII_OPLOCKÚSMB2_SHAREFLAG_ENABLE_HASH_V1ÚSMB2_SHAREFLAG_ENABLE_HASH_V2ÚSMB2_SHAREFLAG_ENCRYPT_DATAÚSMB2_SHARE_CAP_DFSÚ&SMB2_SHARE_CAP_CONTINUOUS_AVAILABILITYÚSMB2_SHARE_CAP_SCALEOUTÚSMB2_SHARE_CAP_CLUSTERÚSMB2_OPLOCK_LEVEL_NONEÚSMB2_OPLOCK_LEVEL_IIÚSMB2_OPLOCK_LEVEL_EXCLUSIVEÚSMB2_OPLOCK_LEVEL_BATCHÚSMB2_OPLOCK_LEVEL_LEASEÚSMB2_IL_ANONYMOUSÚSMB2_IL_IDENTIFICATIONÚSMB2_IL_IMPERSONATIONÚSMB2_IL_DELEGATEÚFILE_ATTRIBUTE_ARCHIVEÚFILE_ATTRIBUTE_COMPRESSEDÚFILE_ATTRIBUTE_DIRECTORYÚFILE_ATTRIBUTE_ENCRYPTEDÚFILE_ATTRIBUTE_HIDDENÚFILE_ATTRIBUTE_NORMALÚ"FILE_ATTRIBUTE_NOT_CONTENT_INDEXEDÚFILE_ATTRIBUTE_OFFLINEÚFILE_ATTRIBUTE_READONLYÚFILE_ATTRIBUTE_REPARSE_POINTÚFILE_ATTRIBUTE_SPARSE_FILEÚFILE_ATTRIBUTE_SYSTEMÚFILE_ATTRIBUTE_TEMPORARYÚFILE_ATTRIBUTE_INTEGRITY_STREAMÚFILE_ATTRIBUTE_NO_SCRUB_DATAÚFILE_SHARE_READÚFILE_SHARE_WRITEÚFILE_SHARE_DELETEÚFILE_SUPERSEDEÚ	FILE_OPENÚFILE_CREATEÚFILE_OPEN_IFÚFILE_OVERWRITEÚFILE_OVERWRITE_IFÚFILE_DIRECTORY_FILEÚFILE_WRITE_THROUGHÚFILE_SEQUENTIAL_ONLYÚFILE_NO_INTERMEDIATE_BUFFERINGÚFILE_SYNCHRONOUS_IO_ALERTÚFILE_SYNCHRONOUS_IO_NONALERTÚFILE_NON_DIRECTORY_FILEÚFILE_COMPLETE_IF_OPLOCKEDÚFILE_NO_EA_KNOWLEDGEÚFILE_RANDOM_ACCESSÚFILE_DELETE_ON_CLOSEÚFILE_OPEN_BY_FILE_IDÚFILE_OPEN_FOR_BACKUP_INTENTÚFILE_NO_COMPRESSIONÚFILE_RESERVE_OPFILTERÚFILE_OPEN_REPARSE_POINTÚFILE_OPEN_NO_RECALLÚFILE_OPEN_FOR_FREE_SPACE_QUERYÚFILE_READ_DATAÚFILE_WRITE_DATAÚFILE_APPEND_DATAÚFILE_READ_EAÚFILE_WRITE_EAÚFILE_DELETE_CHILDÚFILE_EXECUTEÚFILE_READ_ATTRIBUTESÚFILE_WRITE_ATTRIBUTESÚDELETEÚREAD_CONTROLÚ	WRITE_DACÚWRITE_OWNERÚSYNCHRONIZEÚACCESS_SYSTEM_SECURITYÚMAXIMUM_ALLOWEDÚGENERIC_ALLÚGENERIC_EXECUTEÚGENERIC_WRITEÚGENERIC_READÚFILE_LIST_DIRECTORYÚFILE_ADD_FILEÚFILE_ADD_SUBDIRECTORYÚFILE_TRAVERSEÚSMB2_CREATE_EA_BUFFERÚSMB2_CREATE_SD_BUFFERr&  r%  r.  r)  r/  rD  ÚSMB2_CREATE_REQUESTr8  r;  rA  rB  ÚSMB2_CREATE_FLAG_REPARSEPOINTÚFILE_NEED_EAÚFILE_SUPERSEDEDÚFILE_OPENEDÚFILE_CREATEDÚFILE_OVERWRITTENÚSMB2_LEASE_NONEÚSMB2_LEASE_READ_CACHINGÚSMB2_LEASE_HANDLE_CACHINGÚSMB2_LEASE_WRITE_CACHINGÚ$SMB2_LEASE_FLAG_PARENT_LEASE_KEY_SETÚSMB2_DHANDLE_FLAG_PERSISTENTÚ SMB2_CLOSE_FLAG_POSTQUERY_ATTRIBÚSMB2_CHANNEL_NONEÚSMB2_CHANNEL_RDMA_V1ÚSMB2_WRITEFLAG_WRITE_THROUGHÚ)SMB2_NOTIFY_BREAK_LEASE_FLAG_ACK_REQUIREDÚSMB2_LOCKFLAG_SHARED_LOCKÚSMB2_LOCKFLAG_EXCLUSIVE_LOCKÚSMB2_LOCKFLAG_UNLOCKÚSMB2_LOCKFLAG_FAIL_IMMEDIATELYÚFSCTL_DFS_GET_REFERRALSÚFSCTL_PIPE_PEEKÚFSCTL_PIPE_WAITÚFSCTL_PIPE_TRANSCEIVEÚFSCTL_SRV_COPYCHUNKÚFSCTL_SRV_ENUMERATE_SNAPSHOTSÚFSCTL_SRV_REQUEST_RESUME_KEYÚFSCTL_SRV_READ_HASHÚFSCTL_SRV_COPYCHUNK_WRITEÚFSCTL_LMR_REQUEST_RESILIENCYÚ"FSCTL_QUERY_NETWORK_INTERFACE_INFOÚFSCTL_SET_REPARSE_POINTÚFSCTL_DELETE_REPARSE_POINTÚFSCTL_DFS_GET_REFERRALS_EXÚFSCTL_FILE_LEVEL_TRIMÚFSCTL_VALIDATE_NEGOTIATE_INFOÚSMB2_0_IOCTL_IS_FSCTLÚSRV_HASH_TYPE_PEER_DISTÚSRV_HASH_VER_1ÚSRV_HASH_VER_2rº  r¾  ÚRSS_CAPABLEÚRDMA_CAPABLEÚFILE_DIRECTORY_INFORMATIONÚFILE_FULL_DIRECTORY_INFORMATIONÚ!FILEID_FULL_DIRECTORY_INFORMATIONÚFILE_BOTH_DIRECTORY_INFORMATIONÚ!FILEID_BOTH_DIRECTORY_INFORMATIONÚFILENAMES_INFORMATIONÚSMB2_RESTART_SCANSÚSMB2_RETURN_SINGLE_ENTRYÚSMB2_INDEX_SPECIFIEDÚSMB2_REOPENÚSMB2_WATCH_TREEÚFILE_NOTIFY_CHANGE_FILE_NAMEÚFILE_NOTIFY_CHANGE_DIR_NAMEÚFILE_NOTIFY_CHANGE_ATTRIBUTESÚFILE_NOTIFY_CHANGE_SIZEÚFILE_NOTIFY_CHANGE_LAST_WRITEÚFILE_NOTIFY_CHANGE_LAST_ACCESSÚFILE_NOTIFY_CHANGE_CREATIONÚFILE_NOTIFY_CHANGE_EAÚFILE_NOTIFY_CHANGE_SECURITYÚFILE_NOTIFY_CHANGE_STREAM_NAMEÚFILE_NOTIFY_CHANGE_STREAM_SIZEÚFILE_NOTIFY_CHANGE_STREAM_WRITEÚFILE_ACTION_ADDEDÚFILE_ACTION_REMOVEDÚFILE_ACTION_MODIFIEDÚFILE_ACTION_RENAMED_OLD_NAMEÚFILE_ACTION_RENAMED_NEW_NAMEÚSMB2_0_INFO_FILEÚSMB2_0_INFO_FILESYSTEMÚSMB2_0_INFO_SECURITYÚSMB2_0_INFO_QUOTAÚSMB2_SEC_INFO_00ÚSMB2_FILE_ACCESS_INFOÚSMB2_FILE_ALIGNMENT_INFOÚSMB2_FILE_ALL_INFOÚSMB2_FILE_ALLOCATION_INFOÚSMB2_FILE_ALTERNATE_NAME_INFOÚSMB2_ATTRIBUTE_TAG_INFOÚSMB2_FILE_BASIC_INFOÚSMB2_FILE_BOTH_DIRECTORY_INFOÚSMB2_FILE_COMPRESSION_INFOÚSMB2_FILE_DIRECTORY_INFOÚSMB2_FILE_DISPOSITION_INFOÚSMB2_FILE_EA_INFOÚSMB2_FILE_END_OF_FILE_INFOÚSMB2_FULL_DIRECTORY_INFOÚSMB2_FULL_EA_INFOÚSMB2_FILE_HARDLINK_INFOÚ SMB2_FILE_ID_BOTH_DIRECTORY_INFOÚ SMB2_FILE_ID_FULL_DIRECTORY_INFOÚ%SMB2_FILE_ID_GLOBAL_TX_DIRECTORY_INFOÚSMB2_FILE_INTERNAL_INFOÚSMB2_FILE_LINK_INFOÚSMB2_FILE_MAILSLOT_QUERY_INFOÚSMB2_FILE_MAILSLOT_SET_INFOÚSMB2_FILE_MODE_INFOÚSMB2_FILE_MOVE_CLUSTER_INFOÚSMB2_FILE_NAME_INFOÚSMB2_FILE_NAMES_INFOÚSMB2_FILE_NETWORK_OPEN_INFOÚSMB2_FILE_NORMALIZED_NAME_INFOÚSMB2_FILE_OBJECT_ID_INFOÚSMB2_FILE_PIPE_INFOÚSMB2_FILE_PIPE_LOCAL_INFOÚSMB2_FILE_PIPE_REMOTE_INFOÚSMB2_FILE_POSITION_INFOÚSMB2_FILE_QUOTA_INFOÚSMB2_FILE_RENAME_INFOÚSMB2_FILE_REPARSE_POINT_INFOÚSMB2_FILE_SFIO_RESERVE_INFOÚSMB2_FILE_SHORT_NAME_INFOÚSMB2_FILE_STANDARD_INFOÚSMB2_FILE_STANDARD_LINK_INFOÚSMB2_FILE_STREAM_INFOÚSMB2_FILE_TRACKING_INFOÚ SMB2_FILE_VALID_DATA_LENGTH_INFOÚSMB2_FILESYSTEM_VOLUME_INFOÚSMB2_FILESYSTEM_LABEL_INFOÚSMB2_FILESYSTEM_SIZE_INFOÚSMB2_FILESYSTEM_DEVICE_INFOÚSMB2_FILESYSTEM_ATTRIBUTE_INFOÚSMB2_FILESYSTEM_CONTROL_INFOÚSMB2_FILESYSTEM_FULL_SIZE_INFOÚSMB2_FILESYSTEM_OBJECT_ID_INFOÚ SMB2_FILESYSTEM_DRIVER_PATH_INFOÚ SMB2_FILESYSTEM_SECTOR_SIZE_INFOÚOWNER_SECURITY_INFORMATIONÚGROUP_SECURITY_INFORMATIONÚDACL_SECURITY_INFORMATIONÚSACL_SECURITY_INFORMATIONÚLABEL_SECURITY_INFORMATIONÚSL_RESTART_SCANÚSL_RETURN_SINGLE_ENTRYÚSL_INDEX_SPECIFIEDÚSMB2_ENCRYPTION_AES128_CCMÚSMB2_ENCRYPTION_AES128_GCMr5   rN   rp   ru   rx   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,  r0  ÚSMB2_CREATE_RESPONSE_LEASEÚSMB2_CREATE_RESPONSE_LEASE_V2r@  rG  rK  rM  rO  rP  r]  r`  re  rh  ÚSMB2OplockBreakAcknowledgmentÚSMB2OplockBreakResponseri  rp  ÚSMB2LeaseBreakResponserq  rs  ry  rz  ÚSMB2Echo_Responser{  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)  r9   r9   r9   r:   Ú<module>   sN  	

		
	


					

	




		