次の方法で共有


DPN_SP_CAPS 構造体

DPN_SP_CAPS 構造体

サービス プロバイダ用のパラメータの設定と取得に使う。

構文

typedef struct _DPN_SP_CAPS {
    DWORD dwSize;
    DWORD dwFlags;
    DWORD dwNumThreads;
    DWORD dwDefaultEnumCount;
    DWORD dwDefaultEnumRetryInterval;
    DWORD dwDefaultEnumTimeout;
    DWORD dwMaxEnumPayloadSize;
    DWORD dwBuffersPerThread;
    DWORD dwSystemBufferSize;
} DPN_SP_CAPS, *PDPN_SP_CAPS;

メンバ

  • dwSize
    この値は、構造体のサイズに設定する必要がある。

  • dwFlags
    次のフラグを組み合わせて使える。

    • DPNSPCAPS_SUPPORTSDPNSRV
      DPNSVR.EXE は、特定のサービス プロバイダにポート共有を提供する。現在、このフラグはインターネット プロトコル (IP) と Internetwork Packet Exchange (IPX) のみで利用できる。DPNSVR の詳細については、「DirectPlay DPNSVR アプリケーションの使い方」を参照すること。
    • DPNSPCAPS_SUPPORTSBROADCAST
      IP および IPX アプリケーションで、渡されたアドレス情報が不足する場合、サービス プロバイダがある要素を全要素にコピーしてゲームを検索できる。
    • DPNSPCAPS_SUPPORTSALLADAPTERS
      サービス プロバイダは、システム上のすべてのデバイスを使う。デバイス要素を指定する必要はない。
    • DPNSPCAPS_SUPPORTSTHREADPOOL
      サービス プロバイダはスレッド プールをサポートする。
    • DPNSPCAPS_NETWORKSIMULATOR
      DP8Sim サービス プロバイダを指定する。
  • dwNumThreads
    サービス プロバイダがネットワーク要求のサービスに使うスレッドの数。デフォルト値は、システムのプロセッサ数を考慮したアルゴリズムに基づいて設定される。大部分のアプリケーションでは、この値を変更する必要はない。

    プロセスでサービス プロバイダがアクティブになると、この値は増やすことしかできない。この値を減少しても効果がない。設定はプロセス全体に有効であり、ユーザーの現在の Microsoft® DirectPlay® オブジェクトと、プロセス内の他のすべての DirectPlay オブジェクトに影響する。

    EnumHostsConnect、または Host メソッドを呼び出す前に SetSPCaps メソッドを呼び出した場合、デフォルト値より小さい値を指定できる。

  • dwDefaultEnumCount
    デフォルトの列挙カウント。

  • dwDefaultEnumRetryInterval
    デフォルトの再試行間隔 (ミリ秒単位)。

  • dwDefaultEnumTimeout
    デフォルトの列挙タイムアウト値 (ミリ秒単位)。

  • dwMaxEnumPayloadSize
    DPN_MSGID_ENUM_HOSTS_QUERY および DPN_MSGID_ENUM_HOSTS_RESPONSE メッセージに付属する構造体の pvResponseData メンバに送信できる、ペイロード情報の最大サイズ。

  • dwBuffersPerThread
    各 DirectPlay スレッドに割り当てる未処理の受信バッファの数。受信バッファの数を増加した場合、DirectPlay はオペレーティング システム バッファからより多くのデータを引き出すことができる。ただし、アプリケーションの処理速度がデータの到着する速度に追いつかない場合は、遅延時間を延長することもできる。

  • dwSystemBufferSize
    オペレーティング システム バッファのサイズ。このバッファは、アプリケーションの処理速度がデータの到着する速度に追いつかないとき、通信デバイスからのデータを保持する。このバッファの目的は、突然に大量のデータを受け取った場合、または受信スレッドが瞬間的にストールされた場合に、データの損失を防ぐことである。アプリケーションが受信データを適切な速度で処理できない場合、dwSystemBufferSize を増やすと遅延時間が長くなることがある。dwSystemBufferSize を 0 に設定すると、オペレーティング システム バッファを削除できる。ただし、その場合、受信したデータをすぐに処理できないときにデータを失う可能性がある。

注意

dwBuffersPerThread および dwSystemBufferSize メンバを使うのは、IP および IPX サービス プロバイダだけである。これらのメンバのデフォルト値は、サービス プロバイダが設定する。デフォルト値を判断するには、該当する GetSPCaps メソッドを呼び出す。大部分のアプリケーションでは、これら 2 つのメンバにデフォルト値を使う必要がある。これらのメンバは、基本的には、大量のデータを処理するマルチプレーヤ ゲーム用サーバー アプリケーションを作成する開発者が使う。

構造体の情報

ヘッダー dplay8.h
最低限のオペレーティング システム Windows 98、Pocket PC 2002