Verwenden eines NET_LUID-Index
NDIS bietet Funktionen zum Zuordnen und Freigeben der NET_LUID Indizes, die zum Erstellen NET_LUID Werte erforderlich sind. Ein NDIS-Schnittstellenanbieter muss einen NET_LUID Wert zuweisen, um eine Schnittstelle zu registrieren.
Um einen NET_LUID Index zuzuordnen, ruft ein Schnittstellenanbieter die Funktion NdisIfAllocateNetLuidIndex auf . Nach der Zuordnung des Indexes ruft der Schnittstellenanbieter das NDIS_MAKE_NET_LUID Makro auf, um den NET_LUID Wert zu erstellen. Um einen NET_LUID Index freizugeben, ruft ein Schnittstellenanbieter die NdisIfFreeNetLuidIndex-Funktion auf.
NdisIfAllocateNetLuidIndex versucht, einen 24-Bit-Wert zuzuweisen, der dem Schnittstellentyp zugeordnet ist, den der Aufrufer im IfType-Parameter angegeben hat und der für den lokalen Computer eindeutig ist. Wenn die Indexzuordnung erfolgreich ist, gibt NdisIfAllocateNetLuidIndex NDIS_STATUS_SUCCESS zurück und stellt einen NET_LUID Index an der Adresse bereit, die im pNetLuidIndex-Parameter angegeben ist. Wenn NDIS keinen freien NET_LUID Index finden kann, gibt NdisIfAllocateNetLuidIndex NDIS_STATUS_RESOURCES zurück. NdisIfAllocateNetLuidIndex kann andere NDIS-status-Werte zurückgeben, um interne Fehler in NDIS anzugeben. NDIS zeichnet die Zuordnung dieses Indexes für den Zeitpunkt des anschließenden Neustarts des Computers auf. NDIS verwendet auch nach dem Neustart des Computers keinen bestimmten Index für zukünftige Aufrufer, bis der Schnittstellenanbieter, der diesem Index zugeordnet ist, die NdisIfFreeNetLuidIndex-Funktion für diesen Index aufruft.
NdisIfFreeNetLuidIndex gibt einen zuvor zugewiesenen NET_LUID Index frei, sodass NDIS diesen Index möglicherweise einer anderen Schnittstelle zuordnen kann. Der Aufrufer muss denselben Schnittstellentyp bei IfType übergeben, den der Aufrufer beim Aufrufen von NdisIfAllocateNetLuidIndex verwendet hat , um den NET_LUID Index zuzuweisen. Wenn der free-Vorgang erfolgreich ist, gibt NdisIfFreeNetLuidIndex NDIS_STATUS_SUCCESS zurück. Wenn der Aufruf von NdisIfFreeNetLuidIndex fehlschlägt, sollte der Schnittstellenanbieter alle Informationen entfernen, die er im persistenten Speicher gespeichert hat, die sich auf den NET_LUID-Index beziehen. Durch das Entfernen der Informationen wird sichergestellt, dass der Anbieter nicht immer wieder versucht, einen Index frei zu geben, der nach jedem Computerneustart bereits freigegeben wurde. Nach dem Aufruf von NdisIfFreeNetLuidIndex darf der Aufrufer den NET_LUID-Wert nicht erneut verwenden, es sei denn, er ruft NdisIfAllocateNetLuidIndex erneut für denselben Schnittstellentyp auf und empfängt denselben NET_LUID Index, den er freigegeben hat.
Um eine Netzwerkschnittstelle zu registrieren, muss ein Schnittstellenanbieter einen gültigen NET_LUID-Wert an die NdisIfRegisterInterface-Funktion übergeben. Weitere Informationen zum Registrieren von Netzwerkschnittstellen finden Sie unter Registrieren einer Netzwerkschnittstelle.