1

TransactNamedPipe関数のドキュメントには、「このパラメーターは、CreatePipe関数によって返される無名パイプへのハンドルにすることもできます」と記載されています。これは、無名パイプでトランザクションを使用できることを意味します。私が理解しているように、トランザクションは読み取り/書き込み操作であり、無名パイプは読み取りまたは書き込みのいずれかです-それは私には意味がありません。

  1. 匿名パイプでトランザクションを使用することは本当に可能ですか?
  2. はいの場合、どのように?たとえば、CreatePipeの呼び出しから取得した2つのハンドルのどちらを、TransactNamedPipeに渡す必要がありますか?
4

1 に答える 1

1

警告:私はこれを試していません。ただし、 CreatePipeの MSDN ドキュメントには、これが機能する理由の裏付けとなる証拠が含まれています。これらのドキュメントは現時点で非常に完成度が高く、名前付きパイプは非常に初期の Windows トランスポートでした。これが正しくない場合は驚くでしょう。

匿名パイプは、一意の名前を持つ名前付きパイプを使用して実装されます。したがって、多くの場合、名前付きパイプへのハンドルを必要とする関数に匿名パイプへのハンドルを渡すことができます。

これは、上記で提供した引用と組み合わせて、これが機能することを示唆しています. どのハンドル (読み取りまたは書き込み)CreatePipeを使用するかは不明です。これはカバーの下にある単一の二重名前付きパイプであるため、おそらくどちらも機能します。

于 2010-09-22T02:11:37.613 に答える