OID_WAN_CO_GET_INFO
OID_WAN_CO_GET_INFO OID は、NIC 上のすべての仮想接続 (VC) に適用される情報を返すミニポート ドライバーを要求します。 この情報は、次のように定義された NDIS_WAN_CO_INFO 構造体で返されます。
typedef struct _NDIS_WAN_CO_INFO {
OUT ULONG MaxFrameSize;
OUT ULONG MaxSendWindow;
OUT ULONG FramingBits;
OUT ULONG DesiredACCM;
} NDIS_WAN_CO_INFO, *PNDIS_WAN_CO_INFO;
この構造体のメンバーには、次の情報が含まれています:
MaxFrameSize
ミニポート ドライバーが送受信できる任意のネット パケットの最大フレーム サイズを指定します。 この値は、ミニポート ドライバー独自のフレーミング オーバーヘッドおよび/または PPP HDLC オーバーヘッドを除外する必要があります。 通常、この値は約 1500 です。
ただし、すべての CoNDIS WAN ミニポート ドライバーは、この OID に返される値より 32 バイト大きい内部 MaxFrameSize を使用する必要があります。 たとえば、この OID の 1500 を返す CoNDIS WAN ミニポート ドライバーは、内部的に受け入れて最大 1532 を送信する必要があります。 このようなミニポート ドライバーは、将来のブリッジングと追加のプロトコルを容易にサポートできます。
MaxSendWindow
CoNDIS WAN ミニポート ドライバーが VC で処理できる未処理のパケットの最大数を指定します。 このメンバーは、少なくとも1つに設定する必要があります。
NDISWAN ドライバーは、NDISWAN が送信パケットを保持する前にミニポート ドライバーの MiniportCoSendPackets 関数への送信要求で送信するパケットの数の制限として、このメンバーの値を使用します。 これらのパケットは、ミニポート ドライバーが未処理の送信を完了するまでキューに入れられます。 ミニポートドライバーは、 WAN_CO_LINKPARAMS 構造体の SendWindow メンバーを使用して、ミニポート ドライバーが NdisMCoIndicateStatus に渡すこの値を VC ごとに動的に調整できます。 NDISWAN は、未処理の送信の制限として現在の SendWindow 値を使用します。 ミニポート ドライバーが SendWindow を 0 に設定する場合、NDISWAN は特定の VC のパケットの送信を停止する必要があります。 つまり、ミニポート ドライバーは、送信ウィンドウがシャットダウンされることを指定します。実質的には、NDISWAN からのパケットを受け入れることができないことを指定します。
CoNDIS WAN ミニポート ドライバーは内部的にパケットをキューに入れる必要があるため、 MaxSendWindow の値は理論的に 最大( ULONG) となります。 ただし、このドライバーによって決定された値は、NIC のリンク速度またはハードウェア機能を反映している必要があります。 例えば、ミニポート ドライバーの NIC には常に少なくとも 4 つのパケットの余地がある場合、ミニポート ドライバーは、 MiniportCoSendPackets への受信パケットをすぐにハードウェアに配置できるように、 MaxSendWindow を設定します。
FramingBits
ミニポート ドライバーがサポートするフレーミングの種類を指定するビットマスクを指定する 32 ビット値。 ミニポート ドライバーは、バイナリ OR 演算子を使用して、次の値の組み合わせを指定できます:
RAS_FRAMING
ミニポート ドライバーが古い RAS フレームを検出できる場合にのみ設定します。 以前の RAS フレーミングをサポートしていたレガシ ドライバーのみが、このフラグを設定します。
RAS_COMPRESSION
ミニポート ドライバーが古い RAS 圧縮スキームをサポートしている場合にのみ設定します。
PPP_FRAMING
常に設定する必要があります。 ミニポート ドライバーが、そのメディアタイプの PPP フレームを検出し、サポートできることを示します。
PPP_COMPRESS_ADDRESS_CONTROL
ミニポート ドライバーが PPP アドレスとコントロール フィールドの圧縮をサポートしている場合に設定します。
この LCP オプションがネゴシエートされている場合、NDISWAN はアドレスと制御フィールドを削除します。 X.25 などの一部の WAN メディア タイプでは、このオプションはサポートされていません。
PPP_COMPRESS_PROTOCOL_FIELD
ミニポート ドライバーが PPP プロトコル フィールドの圧縮をサポートしている場合に設定します。
NDISWAN は、この LCP オプションがネゴシエートされている場合、該当するときはプロトコル フィールドから 1 バイトを削除します。
PPP_ACCM_SUPPORTED
ミニポート ドライバーが非同期コントロール文字マッピングをサポートしている場合に設定します。 このビットは、モデムなどの非同期メディアでのみ有効です。 このビットが設定されている場合は、 DesiredACCM メンバーが有効である必要があります。
PPP_MULTILINK_FRAMING
ミニポート ドライバーが IETF RFC 1717 で指定されている複数リンク フレームをサポートしている場合に設定します。
PPP_SHORT_SEQUENCE_HDR_FORMAT
ミニポート ドライバーが IETF RFC 1717 で指定されている複数リンク フレームのヘッダー形式をサポートしている場合に設定します。
SLIP_FRAMING
ミニポート ドライバーが SLIP フレームを検出してサポートできるかどうかを設定します(非同期ミニポート ドライバーのみ)。
SLIP_VJ_COMPRESSION
ミニポート ドライバーが SLIP の Van Jacobsen TCP/IP ヘッダー圧縮をサポートできる場合に設定します。 NDISWAN は、SLIP_VJ_COMPRESSION (16 スロット)をサポートします。 SLIP フレーミングをサポートする非同期メディア(シリアル ミニポート ドライバー)は、このビットを設定する必要があります。
非同期メディアでは、VJ ヘッダー圧縮をサポートするコードを記述する必要はありません。 NDISWAN が対応します。
SLIP_VJ_AUTODETECT
ミニポート ドライバーが SLIP の Van Jacobsen TCP/IP ヘッダー圧縮を自動検出できるか場合に設定します。 NDISWAN は、VJ ヘッダーの圧縮を自動検出します。 非同期メディア(シリアルミニポートドライバ)がSLIPフレーミングをサポートしている場合、このビットを設定する必要があります。
TAPI_PROVIDER
ミニポート ドライバーが TAPI サービス プロバイダー OID をサポートしている場合に設定します。 このビットが設定されていない限り、TAPI OID 呼び出しはミニポート ドライバーに対して行われません。
MEDIA_NRZ_ENCODING
ミニポート ドライバーが NRZ エンコードをサポートしている場合、ISDN などの一部のメディアの種類の PPP の既定値を設定します。 この値は、今後使用するために予約されています。
MEDIA_NRZI_ENCODING
ミニポート ドライバーが NRZI エンコードをサポートしている場合に設定します。 この値は、今後使用するために予約されています。
MEDIA_NLPID
ミニポート ドライバーがフレーム内に NLPID を持ち、設定できる場合に設定します。 この値は、今後使用するために予約されています。
RFC_1356_FRAMING
ミニポート ドライバーが IETF RFC 1356 X.25 と ISDN フレームをサポートしている場合に設定します。 この値は、今後使用するために予約されています。
RFC_1483_FRAMING
ミニポート ドライバーが IETF RFC 1483 ATM 適応レイヤー 5 カプセル化をサポートしている場合に設定します。 この値は、今後使用するために予約されています。
RFC_1490_FRAMING
ミニポート ドライバーが IETF RFC 1490 フレーム リレーフレームをサポートしている場合に設定します。 この値は、今後使用するために予約されています。
NBF_PRESERVE_MAC_ADDRESS
ミニポート ドライバーが下書きの「PPP NETBIOS フレーム制御プロトコル (NBFCP)」で指定されている IETF フレーミングをサポートしている場合に設定します。
SHIVA_FRAMING
NBF_PRESERVE_MAC_ADDRESS に置き換えられます。
PASS_THROUGH_MODE
ミニポート ドライバーが独自のフレーミングを行う場合に設定します。 このフラグが設定されている場合、NDISWAN はフレームを渡し、解釈および変更されません。
ミニポート ドライバーは、各ミニポート ドライバーが OID_WAN_CO_SET_LINK_INFO 要求を受け取るまで、デフォルトの PPP フレーミング モードである必要があります。 ミニポート ドライバーは、サポートする必要があるフレームを自動検出する必要があります。
例えば、古い RAS フレーミングをサポートするミニポート ドライバーは、PPP フレーミングから RAS フレーミングを自動検出する必要があります。 ミニポート ドライバーがデフォルト以外のフレーミング スキームを検出した場合、そのミニポート ドライバーは、そのフレーミングを自動的に新しく検出されたフレーミングに切り替える必要があります。
OID_WAN_CO_GET_LINK_INFO を持つ後続のクエリは、検出されたフレーミングを示す必要があります。 フレーミングがまだ検出されていない場合は、 FramingBits は、返された NDIS_WAN_CO_GET_LINK_INFO 情報の中で 0 である必要があります。
WAN ミニポート ドライバーが、その後、 FramingBits メンバーが 0 である OID_WAN_CO_SET_LINK_INFO で呼び出された場合、ミニポート ドライバーは、各フレームの受信時にフレーミングを自動検出する必要があります。
DesiredACCM
非同期制御文字マップがネゴシエートされます。 このメンバーは、非同期メディアの種類にのみ関連します。
要件
バージョン |
Windows Vista の NDIS 6.0 および NDIS 5.1 ドライバーでサポートされています。 Windows XP では NDIS 5.1 ドライバーがサポートされています。 |
ヘッダー |
Ntddndis.h (Ndis.h を含む) |