none
名前付きパイプのサイズ変更 RRS feed

  • 質問

  • Win7(64bit) C++アプリでで名前付きパイプを使用していますが、OSとして名前付きパイプのバッファサイズがいくつに設定されているか調査する方法はありませんでしょうか。

    また、OSの名前付きパイプのバッファサイズを変更する方法がありませんでしょうか。

    2017年5月11日 5:53

回答

  • 間違っていましたら、すみません。

    CreateNamedPipe 関数のページに
    https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa365150%28v=vs.85%29.aspx

    CreateNamedPipe 関数

    名前付きパイプが作成されるたびに、システムはカーネルが使用する物理メモリである非ページプールを使用して、インバウンドおよび/またはアウトバウンドのバッファを作成します。

    とありました。恐らく OS 側 (少なくとも Windows 7 以降) は、名前付きパイプのバッファサイズの制限を設けていないと思います。マシンの搭載する物理メモリの空き容量に依存するのではないでしょうか。GetProcessMemoryInfo 関数で現在のメモリの使用量を取得することが可能ですので、そこから目安の使用可能な最大バッファサイズを概算することができるかもしれません。

    参考サイト: http://stackoverflow.com/questions/33553837/win32-named-pipes-and-message-size-limits-is-the-old-64k-limit-still-applicabl

    2017年5月11日 6:30
  • CreateNamedPipe()のRemarksセクションには

    If the remaining pipe write quota is too small to fulfill the request, the system will try to expand the buffers to accommodate the data using nonpaged pool reserved for the process.

    と言及されていて、必要に応じてバッファサイズは自動拡張されるとのことです。

    ところで、バッファサイズを調べたり、バッファサイズを変更したい理由は何でしょうか? quotaについて知りたいということでしょうか?

    2017年5月11日 7:20

すべての返信

  • 間違っていましたら、すみません。

    CreateNamedPipe 関数のページに
    https://msdn.microsoft.com/ja-jp/library/windows/desktop/aa365150%28v=vs.85%29.aspx

    CreateNamedPipe 関数

    名前付きパイプが作成されるたびに、システムはカーネルが使用する物理メモリである非ページプールを使用して、インバウンドおよび/またはアウトバウンドのバッファを作成します。

    とありました。恐らく OS 側 (少なくとも Windows 7 以降) は、名前付きパイプのバッファサイズの制限を設けていないと思います。マシンの搭載する物理メモリの空き容量に依存するのではないでしょうか。GetProcessMemoryInfo 関数で現在のメモリの使用量を取得することが可能ですので、そこから目安の使用可能な最大バッファサイズを概算することができるかもしれません。

    参考サイト: http://stackoverflow.com/questions/33553837/win32-named-pipes-and-message-size-limits-is-the-old-64k-limit-still-applicabl

    2017年5月11日 6:30
  • CreateNamedPipe()のRemarksセクションには

    If the remaining pipe write quota is too small to fulfill the request, the system will try to expand the buffers to accommodate the data using nonpaged pool reserved for the process.

    と言及されていて、必要に応じてバッファサイズは自動拡張されるとのことです。

    ところで、バッファサイズを調べたり、バッファサイズを変更したい理由は何でしょうか? quotaについて知りたいということでしょうか?

    2017年5月11日 7:20
  • ごくまれに、名前付きパイプへの書き込みエラーが発生しており、エラー内容や原因が分からない為、バッファサイズを増やそうかと考えているためです。

    2017年5月11日 7:45