Freigeben über


NdisReadNetworkAddress-Funktion (ndis.h)

Die NdisReadNetworkAddress-Funktion gibt die softwarekonfigurierbare Netzwerkadresse zurück, die bei der Installation auf dem Computer in der Registrierung für eine Netzwerkkarte gespeichert 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 eine der folgenden Zurückgibt:

NDIS_STATUS_SUCCESS

Der Aufrufer kann die adresse verwenden, die unter NetworkAddress für die NIC zurückgegeben wird.

NDIS_STATUS_FAILURE

Im Registrierungsparameterschlüssel des Aufrufers waren keine NIC-Adressinformationen verfügbar, 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 unter NetworkAddress zurückgegeben werden.

[in] ConfigurationHandle

Das vom -Element zurückgegebene Konfigurationshandle NdisOpenConfigurationEx-Funktion .

Rückgabewert

Keine

Bemerkungen

NdisReadNetworkAddress durchsucht den Registrierungsparameterschlüssel, der vom angegebenen ConfigurationHandle für den Schlüsselwort (keyword) NetworkAddress festgelegt wurde, konvertiert den Wert dieses Zeichenfolgentypeintrags in eine Sequenz von Byte-Ganzzahlen 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 Arbeitsspeicher freigibt.

Der Aufrufer kann die Variable unter NetworkAddress nicht als Zeiger verwenden, es sei denn , NdisReadNetworkAddress gibt NDIS_STATUS_SUCCESS unter Status zurück.

Das Installationsprogramm für eine Netzwerkkarte, die softwarekonfigurierbare Netzwerkadressierung unterstützt, sollte einen Werteintrag mit dem Namen NetworkAddress Schlüsselwort (keyword) 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 Hexadezimalstellen. Optional kann ein Installationsprogramm eine solche Adresse als eine Zeichenfolge von Paarziffern speichern, wobei jedes Paar vom nächsten durch einen Bindestrich getrennt ist. NdisReadNetworkAddress verwirft Bindestriche und konvertiert jedes dieser Paare in ein einzelnes Byte.

In beiden Formen konvertiert NdisReadNetworkAddress die als Zeichenfolge angegebene Adresse jeweils ein Zeichen nach dem anderen 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 muss 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 die permanente MAC-Adresse (Medium Access Control) oder eine Standardadresse verwendet werden.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt für NDIS 6.0- und höher-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 Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL
DDI-Complianceregeln Irql_Miscellaneous_Function(ndis)

Weitere Informationen

NdisCloseConfiguration

NdisOpenConfigurationEx