PROTOCOL_INFOA構造体 (nspapi.h)

PROTOCOL_INFO構造体には、プロトコルに関する情報が含まれています。

構文

typedef struct _PROTOCOL_INFOA {
  DWORD dwServiceFlags;
  INT   iAddressFamily;
  INT   iMaxSockAddr;
  INT   iMinSockAddr;
  INT   iSocketType;
  INT   iProtocol;
  DWORD dwMessageSize;
  LPSTR lpProtocol;
} PROTOCOL_INFOA, *PPROTOCOL_INFOA, *LPPROTOCOL_INFOA;

メンバー

dwServiceFlags

型: DWORD

プロトコルによって提供されるサービスを指定するビット フラグのセット。 次のビット フラグの 1 つ以上を設定できます。

意味
XP_CONNECTIONLESS
このフラグが設定されている場合、プロトコルはコネクションレス (データグラム) サービスを提供します。 このフラグが明確な場合、プロトコルは接続指向のデータ転送を提供します。
XP_GUARANTEED_DELIVERY
このフラグが設定されている場合、プロトコルは、送信されるすべてのデータが目的の宛先に到達することを保証します。 このフラグが明確な場合、そのような保証はありません。
XP_GUARANTEED_ORDER
このフラグが設定されている場合、プロトコルはデータが送信された順序で到着することを保証します。 この特性では、データの配信は保証されず、その順序のみが保証されることに注意してください。 このフラグが明確な場合、送信されるデータの順序は保証されません。
XP_MESSAGE_ORIENTED
このフラグが設定されている場合、プロトコルはメッセージ指向です。 メッセージ指向プロトコルは、メッセージ境界を優先します。 このフラグが明確な場合、プロトコルはストリーム指向であり、メッセージ境界の概念は無関係です。
XP_PSEUDO_STREAM
このフラグが設定されている場合、プロトコルは、すべての受信操作のメッセージ境界を無視するメッセージ指向のプロトコルです。

このオプション機能は、プロトコルでメッセージをフレーム化しない場合に便利です。 ストリーム指向の特性を必要とするアプリケーションは、 iSocketType の値に関係なく、この機能をサポートするトランスポート プロトコルの型SOCK_STREAMを持つソケットを開くことができます。

XP_GRACEFUL_CLOSE
このフラグが設定されている場合、プロトコルは 2 フェーズのクローズ操作 (グレースフル クローズ操作とも呼ばれます) をサポートします。 このフラグが明確な場合、プロトコルは中止終了操作のみをサポートします。
XP_EXPEDITED_DATA
このフラグが設定されている場合、プロトコルは、緊急データとも呼ばれる優先データをサポートします。
XP_CONNECT_DATA
このフラグが設定されている場合、プロトコルは接続データをサポートします。
XP_DISCONNECT_DATA
このフラグが設定されている場合、プロトコルは切断データをサポートします。
XP_SUPPORTS_BROADCAST
このフラグが設定されている場合、プロトコルはブロードキャスト メカニズムをサポートします。
XP_SUPPORTS_MULTICAST
このフラグが設定されている場合、プロトコルはマルチキャスト メカニズムをサポートします。
XP_BANDWIDTH_ALLOCATION
このフラグが設定されている場合、プロトコルは、保証された帯域幅をアプリケーションに割り当てるメカニズムをサポートします。
XP_FRAGMENTATION
このフラグが設定されている場合、プロトコルはメッセージの断片化をサポートします。物理ネットワーク MTU はアプリケーションから非表示になります。
XP_ENCRYPTS
このフラグが設定されている場合、プロトコルはデータ暗号化をサポートします。

iAddressFamily

型: INT

プロトコルのソケットを開くためにソケット関数が呼び出されたときに af パラメーターとして渡す値。 このアドレス ファミリ値は、プロトコルで使用されるプロトコル アドレスの構造 ( sockaddr 構造体とも呼ばれます) を一意に定義します。

iMaxSockAddr

型: INT

プロトコルでサポートされるソケット アドレスの最大長 (バイト単位)。

iMinSockAddr

型: INT

プロトコルでサポートされるソケット アドレスの最小長 (バイト単位)。

iSocketType

型: INT

プロトコルのソケットを開くためにソケット関数が呼び出されたときにパラメーターとして渡す値。

XP_PSEUDO_STREAMが dwServiceFlags で設定されている場合、アプリケーションは iSocketType の値に関係なく、ソケットパラメーターとしてSOCK_STREAMを指定できます。

iProtocol

型: INT

プロトコルのソケットを開くためにソケット関数が呼び出されたときにプロトコル パラメーターとして渡す値。

dwMessageSize

型: DWORD

プロトコルでサポートされる最大メッセージ サイズ (バイト単位)。 これは、ホストとの間で送受信できるメッセージの最大サイズです。 メッセージ フレーミングをサポートしていないプロトコルの場合、特定のアドレスに送信できるメッセージの実際の最大サイズがこの値より小さい場合があります。

次の特殊なメッセージ・サイズ値が定義されています。

意味
0
プロトコルはストリーム指向です。メッセージ サイズの概念は関係ありません。
0xFFFFFFFF
プロトコルはメッセージ指向ですが、最大メッセージ サイズはありません。

lpProtocol

種類: LPTSTR

プロトコルの名前を提供する 0 で終わる文字列へのポインター。たとえば、"SPX2" などです。

注釈

注意

nspapi.h ヘッダーは、PROTOCOL_INFOをエイリアスとして定義します。これは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択します。 encoding-neutral エイリアスの使用を encoding-neutral ではないコードと混在すると、コンパイル エラーまたはランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「 関数プロトタイプの規則」を参照してください。

要件

要件
サポートされている最小のクライアント Windows 2000 Professional [デスクトップ アプリのみ]
サポートされている最小のサーバー Windows 2000 Server [デスクトップ アプリのみ]
Header nspapi.h

こちらもご覧ください

EnumProtocols

socket