我需要使用Python(ctypes)从Windows命名管道实现非阻塞读写。 如果管道在服务器模式下打开,我能够实现这一点。 但是,当使用CreateFile打开带有客户端的管道时,我无法做到这一点。
ReadFile块,无论管道是由服务器进程使用PIPE_NOWAIT创建的。 我正在尝试在windll.kernel32.CreateFileW返回的句柄上使用windll.kernel32.SetNamedPipeHandleState,但得到错误ERROR_ACCESS_DENIED
SetNamedPipeHandleState的描述表明它必须具有GENERIC_READ和FILE_WRITE_ATTRIBUTES访问权限才能获得只读管道。
打开文件时如何设置这些标志?它真的有助于解决我的问题吗?