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 成員中陣列中列出的網路層位址數目。
AddressType
指定傳送這個 OID 的通訊協定類型。 只有當 AddressCount 成員設定為零時,這個成員才有效。 AddressCount成員設定為零,以通知迷你埠驅動程式或其他層次驅動程式清除系結介面上的網路層地址清單。 通訊協定可以是下列其中一個值:
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成員包含指定此位址的位元組陣列。
AddressType
指定傳送這個 OID 和這個網路層位址的通訊協定類型。 只有當 NETWORK_ADDRESS_LIST 結構中的 AddressCount 成員設定為非零值時,這個成員才有效。 NETWORK_ADDRESS_LIST中的 AddressCount 成員會設定為非零值,以通知迷你埠驅動程式或其他層次驅動程式,以變更系結介面上的網路層地址清單。 通訊協定類型定義于上述清單中。
位址
指定此網路層位址的位元組陣列。 AddressLength成員會指定此陣列中的位元組數目。
傳輸可以呼叫 NdisOidRequest 函式,並傳遞已填入 OID_GEN_NETWORK_LAYER_ADDRESSES 程式碼的NDIS_OID_REQUEST結構。 此呼叫會通知系結實例與該實例相關聯之位址中的變更。 在此呼叫中,傳輸也會傳遞 NdisBindingHandle 參數中的系結實例。 系結實例是在傳輸與基礎迷你埠驅動程式或其他層次驅動程式之間設定的系結。 針對此呼叫,傳輸應該使用指向TRANSPORT_ADDRESS 結構的指標填入 NDIS_OID_REQUEST 的 InformationBuffer 成員。 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 成員設定為零,以通知迷你埠驅動程式或其他層次驅動程式清除系結介面上的網路層地址清單。 如果 AddressCount 設定為零,NETWORK_ADDRESS_LIST中的 AddressType 成員有效,且NETWORK_ADDRESS結構中的 AddressType 成員無效。 另一方面,通訊協定可以將 AddressCount 設定為非零值,以通知迷你埠驅動程式或其他層次驅動程式,以變更系結介面上的網路層地址清單。 在此情況下,NETWORK_ADDRESS_LIST中的 AddressType 成員無效,且NETWORK_ADDRESS結構中的 AddressType 成員有效。
規格需求
標頭 |
Ntddndis.h (包含 Ndis.h) |