OID_GEN_NETWORK_LAYER_ADDRESSES
Die OID_GEN_NETWORK_LAYER_ADDRESSES OID benachrichtigt den zugrunde liegenden Miniporttreiber und andere mehrstufige Treiber über die Liste der Netzwerkebenenadressen, die gebundenen Instanzen zugeordnet sind.
Versionsinformationen
Windows Vista und höhere Versionen von Windows
Unterstützt.
Miniporttreiber NDIS 6.0 und höher
Optional.
NDIS 5.1-Miniporttreiber
Optional.
NDIS 5.1-Miniporttreiber
Optional.
Bemerkungen
Ein gebundener instance ist die Bindung zwischen dem aufrufenden Transport und einem Treiber, der durch einen Aufruf von NdisOpenAdapterEx eingerichtet wurde. Transporte verwenden TRANSPORT_ADDRESS- und TA_ADDRESS-Strukturen, um zugrunde liegende Miniporttreiber und andere mehrschichtige Treiber über die Liste der Netzwerkebenenadressen zu informieren. Miniporttreiber und andere mehrschichtige Treiber verwenden kompatible NETWORK_ADDRESS_LIST- und NETWORK_ADDRESS-Strukturen, die wie folgt definiert sind, um die Liste der Netzwerkebenenadressen auf einer gebundenen Schnittstelle festzulegen.
typedef struct _NETWORK_ADDRESS_LIST {
LONG AddressCount;
USHORT AddressType;
NETWORK_ADDRESS Address[1];
} NETWORK_ADDRESS_LIST, *PNETWORK_ADDRESS_LIST;
Die Member dieser Struktur enthalten die folgenden Informationen:
AddressCount
Gibt die Anzahl der Netzwerkebenenadressen an, die im Array im Adresselement aufgeführt sind.
Addresstype
Gibt den Protokolltyp an, der diese OID sendet. Dieser Member ist nur gültig, wenn das AddressCount-Element auf 0 festgelegt ist. Das AddressCount-Element wird auf 0 festgelegt, um einen Miniporttreiber oder einen anderen Mehrschichttreiber zu benachrichtigen, um die Liste der Adressen auf Netzwerkebene auf einer gebundenen Schnittstelle zu löschen. Das Protokoll kann einer der folgenden Werte sein:
NDIS_PROTOCOL_ID_DEFAULT
Standardprotokoll
NDIS_PROTOCOL_ID_TCP_IP
TCP/IP-Protokoll
NDIS_PROTOCOL_ID_IPX
NetWare IPX-Protokoll
NDIS_PROTOCOL_ID_NBF
NetBIOS-Protokoll
Adresse
Array von Netzwerkebenenadressen vom Typ NETWORK_ADDRESS. Das AddressCount-Element gibt die Anzahl der Elemente in diesem Array an.
typedef struct _NETWORK_ADDRESS {
USHORT AddressLength;
USHORT AddressType;
UCHAR Address[1];
} NETWORK_ADDRESS, *PNETWORK_ADDRESS;
Die Member dieser Struktur enthalten die folgenden Informationen:
AddressLength
Gibt die Größe dieser Adresse auf Netzwerkebene in Bytes an. Das Address-Element enthält das Bytearray, das diese Adresse angibt.
Addresstype
Gibt den Protokolltyp an, der diese OID und diese Netzwerkebenenadresse sendet. Dieser Member ist nur gültig, wenn das AddressCount-Element in der NETWORK_ADDRESS_LIST-Struktur auf einen Wert ungleich null festgelegt ist. Das AddressCount-Element in NETWORK_ADDRESS_LIST wird auf einen Wert ungleich null festgelegt, um einen Miniporttreiber oder einen anderen mehrstufigen Treiber zu benachrichtigen, um die Liste der Netzwerkebenenadressen auf einer gebundenen Schnittstelle zu ändern. Protokolltypen sind in der vorherigen Liste definiert.
Adresse
Array von Bytes, die diese Adresse auf Netzwerkebene angeben. Das AddressLength-Element gibt die Anzahl der Bytes in diesem Array an.
Der Transport kann die NdisOidRequest-Funktion aufrufen und eine NDIS_OID_REQUEST-Struktur übergeben, die mit dem OID_GEN_NETWORK_LAYER_ADDRESSES Code gefüllt ist. Dieser Aufruf benachrichtigt einen gebundenen instance über eine Änderung der Adressen, die diesem instance zugeordnet sind. In diesem Aufruf übergibt der Transport auch die gebundenen instance im NdisBindingHandle-Parameter. Die gebundene instance ist die Bindung, die zwischen dem Transport und dem zugrunde liegenden Miniporttreiber oder einem anderen mehrschichtigen Treiber eingerichtet wird. Für diesen Aufruf sollte der Transport das InformationBuffer-Element von NDIS_OID_REQUEST mit einem Zeiger auf eine TRANSPORT_ADDRESS-Struktur füllen. TRANSPORT_ADDRESS entspricht einer NETWORK_ADDRESS_LIST-Struktur und sollte die Liste der Adressen auf Netzwerkebene enthalten.
Angenommen, ein Transport übergibt Adressen über einen Zwischentreiber an einen zugrunde liegenden Miniporttreiber. Wenn der Zwischentreiber auch die Adressen benötigt, sollte er sie notieren, bevor er sie an den zugrunde liegenden Miniporttreiber weitergibt. Ein zugrunde liegender Miniporttreiber, insbesondere ein alter Treiber, kann einen status Wert von NDIS_STATUS_NOT_SUPPORTED oder NDIS_STATUS_SUCCESS zurückgeben. Der zugrunde liegende Miniporttreiber gibt die status des Vorgangs wieder an den Transport weiter. Wenn der zwischengeschaltete Treiber weiterhin Adressbenachrichtigungen empfangen muss und dies erforderlich ist, sollte der zwischengeschaltete Treiber die status in NDIS_STATUS_SUCCESS ändern. Andernfalls interpretiert der Transport möglicherweise NDIS_STATUS_NOT_SUPPORTED als Hinweis darauf, dass der zugrunde liegende Miniporttreiber keine zusätzlichen Adressaktualisierungen des Transportproblems erfordert. Wenn NDIS_STATUS_SUCCESS zurückgegeben wird, sind Transporte verpflichtet, die zugrundeliegenden Fahrer weiterhin über jede Änderung der zugehörigen Adressen zu informieren, einschließlich des Hinzufügens und Löschens von Adressen.
Ein Protokoll kann den AddressCount-Member von TRANSPORT_ADDRESS auf Null festlegen, um einen Miniporttreiber oder einen anderen mehrschichtigen Treiber zu benachrichtigen, um die Liste der Netzwerkebenenadressen auf einer gebundenen Schnittstelle zu löschen. Wenn AddressCount auf null festgelegt ist, ist das AddressType-Element in NETWORK_ADDRESS_LIST gültig, und die AddressType-Member in NETWORK_ADDRESS Strukturen sind ungültig. Auf der anderen Seite kann ein Protokoll AddressCount auf einen Wert ungleich null festlegen, um einen Miniporttreiber oder einen anderen mehrstufigen Treiber zu benachrichtigen, um die Liste der Netzwerkebenenadressen auf einer gebundenen Schnittstelle zu ändern. In diesem Fall ist das AddressType-Element in NETWORK_ADDRESS_LIST ungültig, und die AddressType-Member in NETWORK_ADDRESS-Strukturen sind gültig.
Anforderungen
Header |
Ntddndis.h (include Ndis.h) |