o
    �õ±jV  ã                   @   s¶   d dl T 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d„ Zdd„ Zdd„ Zeddeedfdd„Z dS )é   )Ú*l        i   @i    i   i   é   é   é   é   é€   é   i   i   i   é   é    é@   c                  C   s   t jj} g | _t| _| ƒ S ©N)ÚwindllÚkernel32ÚGetLastErrorÚargtypesÚDWORDÚrestype)Ú_GetLastError© r   úŒ/root/aizidognhua/tmp/workspace/projects/ec89d86c-575f-41c9-af57-ac45cbdbf775/venv/lib/python3.10/site-packages/winacl/functions/kernel32.pyr   +   s   r   c                 C   s6   t jj}tg|_t|_|| ƒ}|tkrt ¡  d S d S r   )	r   r   Ú	LocalFreeÚHLOCALr   r   ÚNULLÚctypesÚWinError)ÚhMemÚ
_LocalFreeÚresultr   r   r   r   4   s   ÿr   c                 C   s(   t jj}tg|_t|_t|_|| ƒ d S r   )	r   r   ÚCloseHandleÚHANDLEr   Úboolr   ÚRaiseIfZeroÚerrcheck)ÚhHandleÚ_CloseHandler   r   r   r   @   s
   r   é    Nc           	      C   s`   t jj}tttttttg|_t|_| sd } |rt	 
|¡}|| ||||||ƒ}|tkr.t	 ¡ ‚|S r   )r   r   ÚCreateFileWÚLPWSTRr   ÚLPVOIDr   r   r   r   ÚpointerÚINVALID_HANDLE_VALUEr   )	Ú
lpFileNameÚdwDesiredAccessÚdwShareModeÚlpSecurityAttributesÚdwCreationDispositionÚdwFlagsAndAttributesÚhTemplateFileÚ_CreateFileWÚhFiler   r   r   r&   G   s   
r&   )!ÚdefinesÚGENERIC_READÚGENERIC_WRITEÚGENERIC_EXECUTEÚGENERIC_ALLÚREAD_CONTROLÚFILE_SHARE_READÚFILE_SHARE_WRITEÚFILE_SHARE_DELETEÚ
CREATE_NEWÚCREATE_ALWAYSÚOPEN_EXISTINGÚOPEN_ALWAYSÚTRUNCATE_EXISTINGÚFILE_ATTRIBUTE_READONLYÚFILE_ATTRIBUTE_NORMALÚFILE_ATTRIBUTE_TEMPORARYÚFILE_FLAG_WRITE_THROUGHÚFILE_FLAG_NO_BUFFERINGÚFILE_FLAG_RANDOM_ACCESSÚFILE_FLAG_SEQUENTIAL_SCANÚFILE_FLAG_DELETE_ON_CLOSEÚFILE_FLAG_OVERLAPPEDÚFILE_FLAG_BACKUP_SEMANTICSÚFILE_ATTRIBUTE_HIDDENÚFILE_ATTRIBUTE_SYSTEMÚFILE_ATTRIBUTE_DIRECTORYÚFILE_ATTRIBUTE_ARCHIVEÚFILE_ATTRIBUTE_DEVICEr   r   r   r&   r   r   r   r   Ú<module>   sH    	