windows – CreateNamedPipe()中lpSecurityAttributes需要什么生
>我多久可以销毁传递给CreateNamedPipe()的lpSecurityAttributes所指向的结构?
>我是否需要为每个管道实例单独一个? CreateNamedPipe()的MSDN文档说:
强调我的. ‘new’是指新的命名管道,还是命名管道的新实例?它继续说:
(同样,强调我的.)人们可以将其视为lpSecurityAttributes仅在创建命名管道的第一个实例(新命名管道)时使用,并在创建同一命名管道的更多实例时被忽略.如果是这样,则只需要lpSecurityAttributes结构的一个实例. 或者你可能必须为每个实例传入一个有效的lpSecurityAttributes,但它可以(应该?)是同一个? 或者您可能需要为每个管道实例分配一个新的SECURITY_ATTRIBUTES结构? 我的相关问题 – 一旦对CreateNamedPipe()的调用返回,它是否可以销毁SECURITY_ATTRIBUTES结构,或者它是否必须保持有效直到最后一个句柄(到管道,或只是那个管道实例?)关闭 – 是不是解决. 有没有人对这两个问题有明确的答案? 解决方法
您需要为每次调用CreateNamedPipe传递有效的SECURITY_ATTRIBUTES结构或NULL.您可以重复使用相同的结构进行其他调用,也可以使用单独的结构,以更方便的方式.在来自不同线程的多个同时调用中使用相同的结构可能不安全 – 我怀疑它会没问题,但无论如何我都会避免它.
‘新’意味着’新管’不是’新实例’.如果命名管道已存在,则不使用lpSecurityDescriptor成员中的ACL.因此,如果您知道要创建现有管道的新实例,并且不需要设置bInheritHandle,则应该只为lpSecurityAttributes传递NULL.如果确实需要设置bInheritHandle,请确保lpSecurityDescriptor为NULL或指向有效的安全描述符. 如前所述,lpSecurityAttributes中的内容可以在调用返回后立即丢弃(除非您计划在另一个调用中重用它!),是的,包括分配给安全描述符的内存. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
- windows – 批处理文件中FOR / F和WMIC中何时以及要转义的内
- 使用Windows SDK构建GTK
- WIN2000?SERVER安全配置服务器手册?(4)
- windows – 查看自上次程序运行以来计算机是否重新启动?
- windows-7 – 我应该在开发PC上安装哪个版本的Windows 7?
- windows-update – 仅在用户注销时通过SCCM部署更新
- windows-server-2008-r2 – 使用SAN LUN的跨区卷的注意事项
- windows – 如何以编程方式更改第三个监视器
- 在Windows 7 x64上使用py2exe进行编译问题
- Soap UI – Windows中存储的首选项/设置
- windows-server-2008 – 每晚重启Windows域上所有
- 从R – windows 10连接到amazon redshift时出错
- winserver-记录共享文件夹操作日志
- wpf – 在不使用PasswordBox的情况下隐藏TextBox
- 将x86 / 64 Windows程序移植到Windows 8 ARM
- 有没有办法在Windows cli中使用’COPY’命令(Pos
- windows-server-2003 – 重用服务器名称
- windows-server-2003 – IIS 6.0上的HTTP压缩(Wi
- 为什么Bonjour for Windows没有看到我的IPv6专用
- 是否可以在Windows中对互斥锁进行静态初始化?