TransactNamedPipe 函数的文档声称“此参数也可以是匿名管道的句柄,由 CreatePipe 函数返回。” 这意味着可以在匿名管道上使用事务。据我了解,事务是读/写操作,匿名管道要么是读要么写——这对我来说没有意义。
- 真的可以使用匿名管道的事务吗?
- 如果是,如何?例如,从调用 CreatePipe 获得的两个句柄中的哪一个应该传递给 TransactNamedPipe?
TransactNamedPipe 函数的文档声称“此参数也可以是匿名管道的句柄,由 CreatePipe 函数返回。” 这意味着可以在匿名管道上使用事务。据我了解,事务是读/写操作,匿名管道要么是读要么写——这对我来说没有意义。
警告:我没有试过这个。然而, CreatePipe的 MSDN 文档包含确凿的证据来说明为什么这可能有效。这些文档在这一点上非常成熟——命名管道是一种非常早期的 Windows 传输方式——如果这是不正确的,我会感到惊讶。
匿名管道是使用具有唯一名称的命名管道来实现的。因此,您通常可以将匿名管道的句柄传递给需要命名管道句柄的函数。
这与您在上面提供的报价相结合,表明这将起作用。不确定CreatePipe
您将使用哪个句柄(读取或写入) - 也许任何一个都可以工作,因为这是一个单一的双工命名管道。