- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
CreateNamedPipe()
的 lpSecurityAttributes
指向的结构?CreateNamedPipe() 的 MSDN 文档说:
lpSecurityAttributes [in, optional]
A pointer to a SECURITY_ATTRIBUTES structure that specifies a security descriptor for the new named pipe...
强调我的。 "new"是指新的命名管道,还是命名管道的新实例?它接着说:
Remarks
To create an instance of a named pipe by using CreateNamedPipe, the user must have FILE_CREATE_PIPE_INSTANCE access to the named pipe object. If a new named pipe is being created, the access control list (ACL) from the security attributes parameter defines the discretionary access control for the named pipe.
(再次强调我的意思。)可以将其理解为 lpSecurityAttributes
仅在创建命名管道的第一个实例(新 命名管道)时使用, 并在创建同一命名管道的更多实例 时被忽略。如果是这样,则只需要 lpSecurityAttributes
结构的一个实例。
或者您可能必须为每个实例传递一个有效的 lpSecurityAttributes,但它可以(应该?)是同一个吗?
或者您可能必须为每个管道实例分配一个新的 SECURITY_ATTRIBUTES 结构?
我的相关问题 - 一旦对 CreateNamedPipe()
的调用返回,SECURITY_ATTRIBUTES 结构是否会被销毁,或者它是否必须保持有效直到最后一个句柄(到管道,或只是那个管道)实例?)已关闭 - 甚至没有解决。
有人对这两个问题有明确的答案吗?
最佳答案
您需要将有效的 SECURITY_ATTRIBUTES 结构或 NULL 传递给对 CreateNamedPipe 的每次调用。您可以为其他调用重用相同的结构,也可以使用单独的结构,以更方便的为准。在来自不同线程的多个同时调用中使用相同的结构可能不安全 - 我怀疑它会没问题,但无论如何我会避免它。
"new"是指“新管道”而不是“新实例”。如果命名管道已经存在,则不使用 lpSecurityDescriptor 成员中的 ACL。因此,如果您知道您正在创建现有管道的新实例,并且不需要设置 bInheritHandle,您应该只为 lpSecurityAttributes 传递 NULL。如果确实需要设置 bInheritHandle,请确保 lpSecurityDescriptor 为 NULL 或指向有效的安全描述符。
如前所述,lpSecurityAttributes 中的内容可以在调用返回后立即丢弃(除非您计划在另一个调用中重用它!)是的,其中包括分配给安全描述符的内存。
关于windows - CreateNamedPipe() 中的 lpSecurityAttributes 需要多长时间?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7964896/
我有一个独立的 Thread 应用程序。这是一个等待消息的监听器,当消息到达时执行一些操作,其中我必须将消息保存在数据库中。但我遇到了问题,因为如果我运行应用程序并“手动发送消息”,一切都会正常工作,
我有以下php代码: sleep(65); $query = "UPDATE database.table SET XXXXXXX = XXXXXXX - ".$YYYYYY." WHERE
我正在开发一个业余爱好应用程序。它在主布局中使用 webview。单击 webview 内的链接会使用户保持在 webview 内。启动后一切正常,但仍在应用程序内。但是,在手机休眠一段时间后,我重新
我目前运行的应用程序需要最大堆大小为 16GB。 目前我使用以下标志来处理垃圾回收。 -XX\:+UseParNewGC, -XX\:+UseConcMarkSweepGC, -XX:CMSIniti
$ uname -a Darwin Wheelie-Cyberman 10.8.0 Darwin Kernel Version 10.8.0: Tue Jun 7 16:33:36 PDT 2011
在 while 循环仍在休眠时退出它的最简单方法是什么?是否有某种函数可以在 sleep 时检测某个值是否为真? 或者我是否在循环中设置一个小 sleep 并检查如果不再睡一会儿就退出?如果可以,我该
我正在 Ubunu 的 Jetty 6 上运行 Java Web 服务器,用于基于反向 ajax 的 Web。而且我在向浏览器重新发送数据的线程滞后方面遇到了严重的问题。很多时候,一些线程开始 hib
当我运行长时间操作时,我遇到来自 IIS 的请求超时。我的 ASP.NET 应用程序正在后台处理数据,但处理的记录数量很大,因此操作需要很长时间。 但是,我认为 IIS 使 session 超时。这是
我不确定从哪里开始解决这个问题,但如果我有一个 AJAX 网络应用程序向服务器发送请求并在数据库(在我的例子中是 postgresql)上运行长查询,有没有办法停止或如果仍在运行时用户刷新页面或关闭
我是一名优秀的程序员,十分优秀!