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) |