Current File : //lib/python2.7/site-packages/paramiko/_winapi.pyo
�
=OXc@s�dZddlZddlZddlmZmZd�Zdejfd��YZd�Z	dZ
ejjj
Z
ejjejfe
_ejje
_ejjjZejjfe_ejje_ejjjZejjfe_ejje_ejjjZejjfe_eje_ejjjZejjejejjejjejjejjge_ejje_ejjjZejje_ejjj Z ejjfe _ejjj!Z!ejejejfe!_ejj"fejjj#_d	e$fd
��YZ%dZ&dZ'e&Z(e&Z)e&Z*d
Z+dZ,dZ-dZ.dZ/dZ0dZ1dZ2dZ3dZ4dZ5dZ6dZ7dZ8e'e,Be-Be.Be/Be0Be1Be2Be3Be4Be5Be6Be7BZ9e(e-Be.BZ:e)e/Be0Be1Be2Be3Be4Be5Be6BZ;e*e,Be7BZ<dd(d��YZ=dd)d��YZ>dej?fd��YZ@d ej?fd!��YZAd"ej?fd#��YZBejCeA�ejejjfejjDjE_d$�ZFd%�ZGd&�ZHdd'�ZJdS(*s�
Windows API functions implemented as ctypes functions and classes as found
in jaraco.windows (3.4.1).

If you encounter issues with this module, please consider reporting the issues
in jaraco.windows and asking the author to port the fixes back here.
i����N(tutbuiltinscCs�d}d}||B}d}|}d}tjj�}d}d}	tjjj||||tj|�||	�}
t|
�|j	}tjjj
|�|S(sf
    Call FormatMessage with a system error number to retrieve
    the descriptive error message.
    iiiN(tNonetctypestwintypestLPWSTRtwindlltkernel32tFormatMessageWtbyrefthandle_nonzero_successtvaluet	LocalFree(terrnotALLOCATE_BUFFERtFROM_SYSTEMtflagstsourcet
message_idtlanguage_idt
result_buffertbuffer_sizet	argumentstbytestmessage((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytformat_system_messages*
	
	tWindowsErrorcBsJeZdZdd�Zed��Zed��Zd�Zd�Z	RS(sVmore info about errors at http://msdn.microsoft.com/en-us/library/ms681381(VS.85).aspxcCsw|dkr!tjjj�}nt|�}tjdkrQd|d|f}n||f}tt	|�j
|�dS(Nii(ii(RRRRtGetLastErrorRtsystversion_infotsuperRt__init__(tselfRtstrerrortargs((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR9scCs|jS(N(R!(R ((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRCscCs|jS(N(twinerror(R ((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytcodeGscCs|jS(N(R(R ((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt__str__KscCsdjt��S(Ns*{self.__class__.__name__}({self.winerror})(tformattvars(R ((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt__repr__NsN(
t__name__t
__module__t__doc__RRtpropertyRR$R%R((((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR6s
	cCs|dkrt��ndS(Ni(R(tresult((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR
Qsit	MemoryMapcBsGeZdZdd�Zd�Zd�Zd�Zd�Zd�Z	RS(sL
    A memory map object which can have security attributes overridden.
    cCs(||_||_||_d|_dS(Ni(tnametlengthtsecurity_attributestpos(R R/R0R1((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR�s			cCs�|jrtj|j�nd}d}d}d}tjjj|||d|jt|j	��}t
|�||kr�td��n||_t
||ddd�|_|S(Ni����iiisFailed to create file mapping(R1RR	RRRtCreateFileMappingWR0RR/R
t	Exceptiontfilemapt
MapViewOfFiletview(R tp_SAtINVALID_HANDLE_VALUEtPAGE_READWRITEtFILE_MAP_WRITER5((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt	__enter__�s!
	cCs
||_dS(N(R2(R R2((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytseek�scCs�t|�}|j||jkr5td|��n|j|j}tj|�}tjjj	|||�|j|7_dS(NsRefusing to write %d bytes(
tlenR2R0t
ValueErrorR7Rtc_size_tRRt
RtlMoveMemory(R tmsgtntdestR0((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytwrite�scCs]tj|�}|j|j}tj|�}tjjj|||�|j|7_|jS(s0
        Read n bytes from mapped view.
        (	Rtcreate_string_bufferR7R2R@RRRAtraw(R RCtoutRR0((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytread�scCs0tjjj|j�tjjj|j�dS(N(RRRtUnmapViewOfFileR7tCloseHandleR5(R texc_typetexc_valttb((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt__exit__�sN(
R)R*R+RRR<R=RERIRO(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR.�s			
	iiiiiiii i@i�iiiiitTokenAccesscBseZdZRS(i(R)R*tTOKEN_QUERY(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRP�stTokenInformationClasscBseZdZRS(i(R)R*t	TokenUser(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRRst
TOKEN_USERcBs/eZdZdejfdejjfgZRS(itSIDt
ATTRIBUTES(R)R*tnumRtc_void_pRtDWORDt_fields_(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRTstSECURITY_DESCRIPTORcBsweZdZejjZdZdejfdejfdefdej	fdej	fdej	fdej	fgZ
RS(	s�
    typedef struct _SECURITY_DESCRIPTOR
        {
        UCHAR Revision;
        UCHAR Sbz1;
        SECURITY_DESCRIPTOR_CONTROL Control;
        PSID Owner;
        PSID Group;
        PACL Sacl;
        PACL Dacl;
        }   SECURITY_DESCRIPTOR;
    itRevisiontSbz1tControltOwnertGrouptSacltDacl(R)R*R+RRtUSHORTtSECURITY_DESCRIPTOR_CONTROLtREVISIONtc_ubyteRXRZ(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR[
s	tSECURITY_ATTRIBUTEScBsheZdZdejjfdejfdejjfgZd�Z	e
d��Zejd��ZRS(s�
    typedef struct _SECURITY_ATTRIBUTES {
        DWORD  nLength;
        LPVOID lpSecurityDescriptor;
        BOOL   bInheritHandle;
    } SECURITY_ATTRIBUTES;
    tnLengthtlpSecurityDescriptortbInheritHandlecOs/tt|�j||�tjt�|_dS(N(RRgRRtsizeofRh(R R"tkwargs((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR5scCs|jS(N(t_descriptor(R ((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt
descriptor9scCs||_tj|�|_dS(N(RmRt	addressofRi(R R((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRn=s	(
R)R*R+RRRYRXtBOOLRZRR,Rntsetter(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRg's	cCs�tjj�}tjjj||jddtj|��tj|j	�}t
tjjj||jtj|�tj|�tj|���tj|tj
t��jS(s:
    Given a token, get the token information for it.
    i(RRRYRtadvapi32tGetTokenInformationRWR	RFRR
RktcasttPOINTERRTtcontents(ttokentinformation_classt	data_sizetdata((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyRsLscCsMtjj�}tjj|�}ttjjj||tj|���|S(N(RRtHANDLER
RRrtOpenProcessTokenR	(tproc_handletaccessR-((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyR|Zs
cCs+ttjjj�tj�}t|t�S(s<
    Return a TOKEN_USER for the owner of this process.
    (	R|RRRtGetCurrentProcessRPRQRsRT(tprocess((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pytget_current_userascCs�|dkrt�}nt�}t�}||_d|_tjjj	tj
|�tj�tjjjtj
|�|j
d�|S(s�
    Return a SECURITY_ATTRIBUTES structure with the SID set to the
    specified user (uses current user if none is specified).
    iiN(RR�R[RgRnRjRRRrtInitializeSecurityDescriptorR	RetSetSecurityDescriptorOwnerRU(tusertSDtSA((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt get_security_attributes_for_userks				

(((KR+Rtctypes.wintypesRtparamiko.py3compatRRRRR
t
GMEM_MOVEABLERRtGlobalAllocRtUINTR@targtypesR{trestypet
GlobalLocktHGLOBALtLPVOIDtGlobalUnlockRpt
GlobalSizeR3tCreateFileMappingRXRYRR6RJRAtHLOCALRtobjectR.tREAD_CONTROLtSTANDARD_RIGHTS_REQUIREDtSTANDARD_RIGHTS_READtSTANDARD_RIGHTS_WRITEtSTANDARD_RIGHTS_EXECUTEtSTANDARD_RIGHTS_ALLtPOLICY_VIEW_LOCAL_INFORMATIONtPOLICY_VIEW_AUDIT_INFORMATIONtPOLICY_GET_PRIVATE_INFORMATIONtPOLICY_TRUST_ADMINtPOLICY_CREATE_ACCOUNTtPOLICY_CREATE_SECRETtPOLICY_CREATE_PRIVILEGEtPOLICY_SET_DEFAULT_QUOTA_LIMITStPOLICY_SET_AUDIT_REQUIREMENTStPOLICY_AUDIT_LOG_ADMINtPOLICY_SERVER_ADMINtPOLICY_LOOKUP_NAMEStPOLICY_NOTIFICATIONtPOLICY_ALL_ACCESStPOLICY_READtPOLICY_WRITEtPOLICY_EXECUTERPRRt	StructureRTR[RgRuRrR�RsR|R�RR�(((s4/usr/lib/python2.7/site-packages/paramiko/_winapi.pyt<module>s�	$					</