OID_GEN_TRANSPORT_HEADER_OFFSET
OID_GEN_TRANSPORT_HEADER_OFFSET OID は、セットとして、特定のトランスポートが送受信するパケットの追加ヘッダーのサイズを示します。
バージョン情報
Windows Vista 以降のバージョンの Windows
サポート対象。
解説
トランスポートは、ミニポート ドライバーとその他のレイヤード ドライバーにこのヘッダー サイズを通知します。これらのドライバーは、パケットの処理時にこの情報を使用します。 たとえば、ドライバーは、トランスポートから取得したサブレイヤー ヘッダー サイズを使用して、IP ヘッダーの先頭など、パケット内の上位レイヤー情報の開始を見つけることができます。ドライバーは、必要に応じて IP プロトコル ヘッダーのフィールドを解析して調整できます。 トランスポートでは、次のように定義された TRANSPORT_HEADER_OFFSET 構造体を使用して、このヘッダー サイズを示します。
typedef struct _TRANSPORT_HEADER_OFFSET {
USHORT ProtocolType;
USHORT HeaderOffset;
} TRANSPORT_HEADER_OFFSET, *PTRANSPORT_HEADER_OFFSET;
この構造体のメンバーには、次の情報が含まれています。
ProtocolType
この OID を送信し、その後、指定したサブレイヤー ヘッダー サイズを使用してパケットを送受信するプロトコルの種類を指定します。 プロトコルは、次のいずれかの値です。
NDIS_PROTOCOL_ID_DEFAULT
既定のプロトコル
NDIS_PROTOCOL_ID_TCP_IP
TCP/IP プロトコル
NDIS_PROTOCOL_ID_IPX
NetWare IPX プロトコル
NDIS_PROTOCOL_ID_NBF
NetBIOS プロトコル
HeaderOffset
プロトコルが続いてミニポート ドライバーまたはその他のレイヤード ドライバーとの間で送受信するパケットのプロトコル ヘッダーの前にあるサブレイヤー ヘッダーのサイズをバイト単位で指定します。 たとえば、sizeof(Ethernet header) + sizeof(SNAP header) などです。
通常、トランスポートは、ミニポート ドライバーから取得される情報からパケットのヘッダー サイズを計算します。 ヘッダーを含め、NIC がサポートする最大合計パケット サイズ (バイト単位) を要求するには、トランスポートは OID_GEN_MAXIMUM_TOTAL_SIZE OID を使用します。 ヘッダーを含まずに、NIC がサポートする最大パケット サイズ (バイト単位) を要求するには、トランスポートは OID_GEN_MAXIMUM_FRAME_SIZE OID を使用します。 最大ヘッダー サイズを計算するため、トランスポートは最大合計サイズから最大フレーム サイズを減算します。
トランスポートがサブレイヤー ヘッダー情報を含むパケットを送信する場合、トランスポートはこれらのパケットのサブレイヤー ヘッダー のサイズを認識し、ドライバーがパケットを処理できるように、そのサイズについて基になるミニポート ドライバーとその他のレイヤード ドライバーに通知する必要があります。 パケット内の特定のサブレイヤー ヘッダー情報の送受信は、特定のプロトコルのレジストリで設定できるオプションである場合があります。 その後、トランスポートはレジストリからサブレイヤー ヘッダーに関する情報を取得し、ヘッダー サイズをミニポート ドライバーまたはその他のレイヤード ドライバーに渡します。
たとえば、トランスポートがファイバー分散データ インターフェイス メディアからのパケットを処理する場合、トランスポートは、OID_GEN_TRANSPORT_HEADER_OFFSET を使用して、基になるミニポート ドライバーとその他のレイヤード ドライバーにセット要求を送信し、パケットのサブレイヤー ヘッダーのサイズについてこれらのドライバーに通知する必要があります (FDDI は、Windows Vista 以降のバージョンの Windows ではサポートされていません)。FDDI からのこれらのパケットには、論理リンク制御 (LLC) 情報が含まれている可能性があります。 この LLC 情報には、LLC ヘッダーと、SNAP (Sub-Network Access Protocol) などの他のヘッダーが含まれる場合があります。 トランスポートは、レジストリから LLC/SNAP を使用するように判断し、パケットの LLC/SNAP セグメントのヘッダー サイズをミニポート ドライバーに渡します。
この OID は、ミニポート ドライバーとその他のレイヤード ドライバーでは省略可能です。 この OID は省略可能であるため、ドライバーは、この OID を使用してトランスポートが行う要求に応答する必要はありません。
要件
ヘッダー |
Ntddndis.h (Ndis.h を含む) |