OID_GEN_NETWORK_LAYER_ADDRESSES
セットとして、OID_GEN_NETWORK_LAYER_ADDRESSES OID は、バインドされたインスタンスに関連付けられているネットワーク層アドレスの一覧について、基になるミニポート ドライバーとその他の階層化されたドライバーに通知します。
バージョン情報
Windows Vista 以降のバージョンの Windows
サポート対象。
解説
バインドされたインスタンスは、通話トランスポートと NdisOpenAdapterEx の呼び出しによって設定されたドライバーの間のバインドです。 トランスポートでは、TRANSPORT_ADDRESS と TA_ADDRESS 構造体を使用して、基になるミニポート ドライバーとその他の階層化されたドライバーにネットワーク層アドレスの一覧を通知します。 ミニポート ドライバーとその他の階層化されたドライバーは、次のように定義された互換性のある NETWORK_ADDRESS_LIST と NETWORK_ADDRESS 構造体を使用して、バインドされたインターフェイスのネットワーク層アドレスの一覧を設定します。
typedef struct _NETWORK_ADDRESS_LIST {
LONG AddressCount;
USHORT AddressType;
NETWORK_ADDRESS Address[1];
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
この構造体のメンバーには、次の情報が含まれています。
AddressCount
Address メンバーの配列にリストされているネットワーク層アドレスの数を指定します。
[アドレスの種類]
この OID を送信するプロトコルの種類を指定します。 このメンバーは、AddressCount メンバーが 0 に設定されている場合にのみ有効です。 AddressCount メンバーは 0 に設定され、ミニポート ドライバーまたは他の階層化されたドライバーにバインドされたインターフェイスのネットワーク層アドレスの一覧をクリアするように通知します。 プロトコルには次のいずれかの値を指定することができます。
NDIS_PROTOCOL_ID_DEFAULT
既定のプロトコル
NDIS_PROTOCOL_ID_TCP_IP
TCP/IP プロトコル
NDIS_PROTOCOL_ID_IPX
NetWare IPX プロトコル
NDIS_PROTOCOL_ID_NBF
NetBIOS プロトコル
住所
NETWORK_ADDRESS 型のネットワーク層アドレスの配列。 AddressCount メンバーは、この配列内の要素の数を指定します。
typedef struct _NETWORK_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
この構造体のメンバーには、次の情報が含まれています。
AddressLength
このネットワーク層アドレスのサイズをバイト単位で指定します。 Address メンバーには、このアドレスを指定するバイトの配列が含まれています。
[アドレスの種類]
この OID とこのネットワーク層アドレスを送信するプロトコルの種類を指定します。 このメンバーは、NETWORK_ADDRESS_LIST 構造体の AddressCount メンバーが 0 以外の値に設定されている場合にのみ有効です。 NETWORK_ADDRESS_LIST の AddressCount メンバーは 0 以外の値に設定され、ミニポート ドライバーまたはその他の階層化されたドライバーに、バインドされたインターフェイス上のネットワーク層アドレスの一覧を変更するように通知します。 プロトコルの種類は、前の一覧で定義されています。
住所
このネットワーク層アドレスを指定するバイトの配列。 AddressLength メンバーは、この配列内のバイト数を指定します。
トランスポートは NdisOidRequest 関数を呼び出し、OID_GEN_NETWORK_LAYER_ADDRESSES コードで満たされた NDIS_OID_REQUEST 構造体を渡すことができます。 この呼び出しは、バインドされたインスタンスに、そのインスタンスに関連付けられているアドレスの変更を通知します。 この呼び出しでは、トランスポートは NdisBindingHandle パラメーターにバインドされたインスタンスも渡します。 バインドされたインスタンスは、トランスポートと基になるミニポート ドライバーまたはその他の階層化されたドライバーの間で設定されるバインディングです。 この呼び出しでは、トランスポートは、NDIS_OID_REQUEST の InformationBuffer メンバーを TRANSPORT_ADDRESS 構造体へのポインターで入力する必要があります。 TRANSPORT_ADDRESS は NETWORK_ADDRESS_LIST 構造体に対応し、ネットワーク層アドレスの一覧を含める必要があります。
トランスポートが中間ドライバーを介して基になるミニポート ドライバーにアドレスを渡したとします。 中間ドライバーにもアドレスが必要な場合は、基になるミニポート ドライバーに渡す前にそれらをメモする必要があります。 基になるミニポート ドライバー (特に古いドライバー) は、NDIS_STATUS_NOT_SUPPORTED または NDIS_STATUS_SUCCESS の状態値を返すことができます。 基になるミニポート ドライバーは、操作の状態をトランスポートに戻します。 中間ドライバーが引き続きアドレス通知を受信する必要がある場合、中間ドライバーは状態を NDIS_STATUS_SUCCESS に変更する必要があります。それ以外の場合、トランスポートは NDIS_STATUS_NOT_SUPPORTED を、基になるミニポート ドライバーがトランスポート問題の追加のアドレス更新を必要としないことを示すものとして解釈する可能性があります。 NDIS_STATUS_SUCCESS が返された場合、トランスポートは、アドレスの追加や削除など、関連するアドレスの変更について、基になるドライバーに引き続き通知する必要があります。
プロトコルは、TRANSPORT_ADDRESS の AddressCount メンバーを 0 に設定して、ミニポート ドライバーまたはその他の階層化されたドライバーに、バインドされたインターフェイスのネットワーク層アドレスの一覧をクリアするように通知します。 AddressCount が 0 に設定されている場合、NETWORK_ADDRESS_LIST の AddressType メンバーは有効であり、NETWORK_ADDRESS 構造体の AddressType メンバーは無効です。 一方、プロトコルでは、AddressCount を 0 以外の値に設定して、ミニポート ドライバーまたはその他の階層化されたドライバーにバインドされたインターフェイス上のネットワーク層アドレスの一覧を変更するように通知します。 この場合、NETWORK_ADDRESS_LIST の AddressType メンバーは無効であり、NETWORK_ADDRESS 構造体の AddressType メンバーは有効です。
要件
ヘッダー |
Ntddndis.h (Ndis.h を含む) |