VH|u 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