Freigeben über


NdisReadNetworkAddress-Funktion (ndis.h)

Die NdisReadNetworkAddress Funktion gibt die softwarekonfigurierbare Netzwerkadresse zurück, die in der Registrierung für eine NIC gespeichert wurde, als sie auf dem Computer installiert wurde.

Syntax

void NdisReadNetworkAddress(
  [out] PNDIS_STATUS Status,
  [out] PVOID        *NetworkAddress,
  [out] PUINT        NetworkAddressLength,
  [in]  NDIS_HANDLE  ConfigurationHandle
);

Parameter

[out] Status

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion den Status des Aufrufs als einer der folgenden Zurückgibt:

NDIS_STATUS_SUCCESS

Der Anrufer kann die adresse verwenden, die an NetworkAddress für die NIC zurückgegeben wird.

NDIS_STATUS_FAILURE

Es sind keine NIC-Adressinformationen in der Registrierung des Aufrufers verfügbar Parameter Schlüssel oder der gespeicherte Wert war keine Zeichenfolge.

[out] NetworkAddress

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion einen Zeiger auf einen Puffer zurückgibt, der die Netzwerkadresse (in der Regel die MAC-Adresse) enthält, die als Sequenz von Byte-Ganzzahlen gespeichert ist, wenn der Aufruf erfolgreich ist.

[out] NetworkAddressLength

Ein Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der diese Funktion die Anzahl der Bytes zurückgibt, die an NetworkAddresszurückgegeben werden.

[in] ConfigurationHandle

Der vom Konfigurationshandle zurückgegebene Konfigurationshandle NdisOpenConfigurationEx--Funktion.

Rückgabewert

Nichts

Bemerkungen

NdisReadNetworkAddress durchsucht die Registrierung Parameters Schlüssel, der durch den angegebenen ConfigurationHandle- für das Schlüsselwort NetworkAddressfestgelegt wird, konvertiert den Wert dieses Zeichenfolgentypeintrags in eine Folge von Bytezahlen und speichert die angeforderten Informationen intern. Der Speicher, den NDIS für eine solche Adresse zuweist, bleibt gültig, bis der Miniporttreiber die NdisCloseConfiguration Funktion aufruft, die den Speicher freigibt.

Der Aufrufer kann die Variable bei NetworkAddress nicht als Zeiger verwenden, es sei denn, NdisReadNetworkAddress gibt NDIS_STATUS_SUCCESS an Statuszurück.

Das Installationsprogramm für eine NIC, die softwarekonfigurierbare Netzwerkadressierung unterstützt, sollte einen Werteintrag mit dem schlüsselwort NetworkAddress im HKLM\System\CurrentControlSet\Control\Class{4d36e972...} speichern.\00xx Schlüssel der Registrierung.

Ein NIC-Installationsprogramm speichert in der Regel den Wert eines NetworkAddress- Eintrags in der Registrierung als Zeichenfolge von Hexadezimalziffern. Optional kann ein Installationsprogramm eine solche Adresse als eine Zeichenfolge mit gekoppelten Ziffern speichern, wobei jedes Paar durch einen Bindestrich vom nächsten getrennt ist. NdisReadNetworkAddress Bindestriche verwirft und jedes solche Paar in ein einzelnes Byte konvertiert.

In beiden Formularen konvertiert NdisReadNetworkAddress die als Zeichenfolge angegebene Adresse , jeweils ein Zeichen, in die entsprechende ganze Zahl, bis die Zeichenfolge erschöpft ist.

In der Registrierung von Windows 2000 und höheren Versionen enthält eine solche installierte Adresszeichenfolge Unicode-Zeichen.

Beachten Sie, dass NDIS den Wert bei NetworkAddress-nicht überprüft. NDIS garantiert nicht, dass dieser Wert eine gültige Adresse ist, dass der Wert die richtige Länge hat oder sogar, dass der Wert eine Netzwerkadresse ist. Der Aufrufer von NdisReadNetworkAddress darf daher keine Annahmen zu diesem Wert treffen und den Wert selbst überprüfen. Wenn der Aufrufer feststellt, dass der Wert außerhalb der Grenzen liegt, sollte er den Wert nicht verwenden. Stattdessen sollte sie die permanente Mac-Adresse (Medium Access Control) oder eine Standardadresse verwenden.

Anforderungen

Anforderung Wert
mindestens unterstützte Client- Unterstützt für NDIS 6.0 und höhere Treiber in Windows Vista und höher. Unterstützt für NDIS 5.1-Treiber (siehe NdisReadNetworkAddress (NDIS 5.1)) in Windows XP und höher.
Zielplattform- Universal
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- PASSIVE_LEVEL
DDI-Complianceregeln Irql_Miscellaneous_Function(ndis)

Siehe auch

NdisCloseConfiguration

NdisOpenConfigurationEx