/g d Z ddlZej dk r ed ddlZddlZddlZddlZddlZddl Z ddl
Z
dZdZej
Z
ej Z ej Zdded d
Z G d d Z G d
dej ZdS )z)Various Windows specific bits and pieces. Nwin32z
win32 only)pipePopenPIPE
PipeHandlei F)TT)duplex
overlappedbufsizec
R t j d t j t t }| r*t j }t j t j
z }||}}nt j }t j
}d|}}|t j z }|d r|t j
z }|d r
t j
}nd}dx} }
t j ||t j d||t j t j } t j ||dt j t j |t j }
t j | d }| d | |
fS # | t j | |
t j |
xY w)zELike os.pipe() but with overlapped support and using handles not fds.z\\.\pipe\python-pipe-{:d}-{:d}-)prefixr NTr )tempfilemktempformatosgetpidnext
_mmap_counter_winapiPIPE_ACCESS_DUPLEXGENERIC_READ
GENERIC_WRITEPIPE_ACCESS_INBOUNDFILE_FLAG_FIRST_PIPE_INSTANCEFILE_FLAG_OVERLAPPEDCreateNamedPipe PIPE_WAITNMPWAIT_WAIT_FOREVERNULL
CreateFile
OPEN_EXISTINGConnectNamedPipeGetOverlappedResultCloseHandle)r r r
addressopenmodeaccessobsizeibsizeflags_and_attribsh1h2ovs