Freigeben über


NdisOpenAdapter-Funktion (ndis.h)

Hinweis NDIS 5. x ist veraltet und wird von NDIS 6 ersetzt. x. Informationen zur neuen NDIS-Treiberentwicklung finden Sie unter Netzwerktreiber ab Windows Vista. Informationen zum Portieren von NDIS 5. x Treiber auf NDIS 6. xfinden Sie unter Portieren von NDIS 5.x-Treibern zu NDIS 6.0.

NdisOpenAdapter eine Bindung zwischen dem aufrufenden Protokoll und einem bestimmten zugrunde liegenden NIC-Treiber oder NDIS-Zwischentreiber einrichtet.

Syntax

void NdisOpenAdapter(
  [out]          PNDIS_STATUS Status,
  [out]          PNDIS_STATUS OpenErrorStatus,
  [out]          PNDIS_HANDLE NdisBindingHandle,
  [out]          PUINT        SelectedMediumIndex,
  [in]           PNDIS_MEDIUM MediumArray,
  [in]           UINT         MediumArraySize,
  [in]           NDIS_HANDLE  NdisProtocolHandle,
  [in]           NDIS_HANDLE  ProtocolBindingContext,
  [in]           PNDIS_STRING AdapterName,
  [in]           UINT         OpenOptions,
  [in, optional] PSTRING      AddressingInformation
);

Parameter

[out] Status

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die eines der folgenden Werte sein kann, die von dieser Funktion zurückgegeben werden:

  • STATUS_SUCCESS
    Die angeforderte Bindung ist jetzt eingerichtet, sodass der Aufrufer die bei NdisBindingHandle zurückgegebenen Werte verwenden kann und SelectedMediumIndex- in nachfolgenden Aufrufen von NdisXxx.

  • NDIS_STATUS_PENDING
    Der angeforderte Vorgang wird asynchron behandelt, und die ProtocolOpenAdapterComplete--Funktion des Aufrufers wird aufgerufen, wenn das Öffnen abgeschlossen ist.

  • NDIS_STATUS_RESOURCES
    Der angeforderte Vorgang ist fehlgeschlagen, da NDIS nicht genügend Arbeitsspeicher zuordnen konnte oder den Zustand initialisieren konnte, der zum Nachverfolgen einer geöffneten Bindung verwendet wird.

  • NDIS_STATUS_ADAPTER_NOT_FOUND
    Fehler beim angeforderten Vorgang, da der Name unter AdapterName- im Systemobjektnamespace nicht gefunden werden konnte.

  • NDIS_STATUS_UNSUPPORTED_MEDIA
    Das Array bei MediumArray kein Medium angegeben, das von NDIS oder vom zugrunde liegenden Treiber unterstützt wird.

  • NDIS_STATUS_CLOSING
    Entweder der Anrufer oder das physische oder virtuelle Gerät, das an AdapterName festgelegt ist, wird geschlossen.

  • NDIS_STATUS_OPEN_FAILED
    Fehler beim öffnenden Versuch aus keinem der vorherigen spezifischen Gründe. Beispielsweise konnte NDIS das Filterpaket für das ausgewählte Medium möglicherweise nicht initialisieren.

[out] OpenErrorStatus

Zeiger auf eine vom Aufrufer bereitgestellte Variable, die einen NDIS_STATUS_XXX- Fehler enthalten kann, der weitere Informationen angibt, wenn NdisOpenAdapter einen Fehler bei Statuszurückgibt. Beispielsweise kann der Treiber einer Token Ring-NIC einen Ringfehler in dieser Variablen zurückgeben.

[out] NdisBindingHandle

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der NDIS ein Handle zurückgibt, das eine erfolgreiche Bindung zwischen dem Aufrufer und der angegebenen physischen oder virtuellen NIC darstellt, die bei AdapterNameangegeben ist.

[out] SelectedMediumIndex

Zeiger auf eine vom Aufrufer bereitgestellte Variable, in der NDIS den Index des Arrayelements zurückgibt, das den Vom zugrunde liegenden NDIS-Treiber verwendeten Medientyp angibt.

[in] MediumArray

Zeiger auf ein Array von NDIS_MEDIUM-Typ-Werten, die die Medientypen angeben, die der Aufrufer unterstützen kann. Mögliche Elemente umfassen eine beliebige richtige Teilmenge der folgenden Elemente:

  • NdisMedium802_3
    Gibt ein Ethernet-Netzwerk (802.3) an.

  • NdisMedium802_5
    Gibt ein Tokenring -Netzwerk (802.5) an.

  • NdisMediumFddi
    Gibt ein FdDI-Netzwerk (Fiber Distributed Data Interface) an.

  • NdisMediumWan
    Gibt ein breit angelegtes Netzwerk an. Dieser Typ umfasst verschiedene Formen von Point-to-Point- und WAN-NICs sowie Variant-Adress-/Headerformate, die zwischen dem Protokolltreiber und dem zugrunde liegenden Treiber ausgehandelt werden müssen, nachdem die Bindung eingerichtet wurde.

  • NdisMediumLocalTalk
    Gibt ein LocalTalk-Netzwerk an.

  • NdisMediumDix
    Gibt ein Ethernet-Netzwerk an, für das die Treiber das DIX-Ethernet-Headerformat verwenden.

  • NdisMediumArcnetRaw
    Gibt ein ARCNET-Netzwerk an.

  • NdisMediumArcnet878_2
    Gibt ein ARCNET-Netzwerk (878.2) an.

  • NdisMediumAtm
    Gibt ein ATM-Netzwerk an. Verbindungsorientierte Clientprotokolle können sich selbst an einen zugrunde liegenden Miniporttreiber binden, der diesen Wert zurückgibt. Andernfalls binden legacy-Protokolle sich selbst an den vom System bereitgestellten LanE-Zwischentreiber, der den mittleren Typ je nach Konfiguration des LanE-Treibers vom Netzwerkadministrator als NdisMedium802_3 oder NdisMedium802_5meldet.

  • NdisMediumWirelessWan
    Gibt ein Drahtlosnetzwerk an. NDIS 5.X Miniporttreiber, die WLAN-Pakete (Wireless LAN) oder WWAN (Wireless WAN) unterstützen, deklarieren ihr Medium als NdisMedium802_3 und emulieren Ethernet auf NDIS-Treiber höherer Ebene.

    Hinweis Dieser Medientyp steht ab Windows Vista nicht zur Verfügung.

  • NdisMediumIrda
    Gibt ein Infrarotnetzwerk (IrDA) an.

  • NdisMediumCoWan
    Gibt ein breites Flächennetzwerk in einer verbindungsorientierten Umgebung an.

  • NdisMedium1394
    Gibt ein IEEE 1394(Fire Wire)-Netzwerk an.

[in] MediumArraySize

Gibt die Anzahl der Elemente bei MediumArray-an.

[in] NdisProtocolHandle

Gibt das von NdisRegisterProtocolzurückgegebene Handle an.

[in] ProtocolBindingContext

Gibt das Handle für einen vom Aufrufer bereitgestellten residenten Kontextbereich an, in dem das Protokoll den Status zu dieser Bindung verwaltet, nachdem sie eingerichtet wurde.

[in] AdapterName

Zeigen Sie auf einen NDIS_STRING Typ, der eine gezählte Zeichenfolge enthält, die im Systemstandardzeichensatz angegeben ist, wobei die NIC oder der virtuelle Adapter eines zugrunde liegenden NDIS-Treibers benannt wird. Dieser Treiber exportiert eine Reihe von Oberen ( MiniportXxx) Funktionen. Für Windows 2000 und höhere Treiber enthält diese gezählte Zeichenfolge Unicode-Zeichen. Für Windows 2000 und höher definiert NDIS den NDIS_STRING Typ als UNICODE_STRING Typ.

[in] OpenOptions

Gibt eine Bitmaske an, die Flags enthält, die der Aufrufer an den nächsten niedrigeren Treiber übergibt, vorausgesetzt, es ist ein NIC-Treiber. Derzeit ist dieser Parameter für die Systemverwendung reserviert.

[in, optional] AddressingInformation

Zeigen Sie auf eine optionale Zeichenfolge mit variabler Länge, die Spezifische Informationen für die zugrunde liegende NIC enthält, die der NIC-Treiber zum Programmieren der Netcard verwenden kann. Dieser Zeiger kann NULL-sein.

Wenn sie angegeben wird, müssen die Adressinformationen gültig bleiben, bis der geöffnete Vorgang abgeschlossen ist. Ein zugrunde liegender NIC-Treiber, der ein asynchrones Modem unterstützt, kann diese Informationen für die Wählhilfe verwenden.

Rückgabewert

Nichts

Bemerkungen

Ein Protokolltreiber ruft NdisOpenAdapter aus seiner ProtocolBindAdapter--Funktion auf. NDIS unterstützt nicht mehr das Aufrufen von NdisOpenAdapter- aus der DriverEntry--Funktion, die für Legacyprotokolle (V3.0) verfügbar war. NDIS unterstützt keine V3.0-Protokolle mehr. NDIS schlägt fehl, NdisOpenAdapter- außerhalb des Kontexts von ProtocolBindAdapteraufzurufen.

Die Zeichenfolge bei AdapterName bleibt nur gültig, bis NdisOpenAdapter Steuerelement zurückgibt, auch wenn sie NDIS_STATUS_PENDING bei Statuszurückgibt.

Die Variablen bei NdisBindingHandle und SelectedMediumIndex- sollten ignoriert werden, bis die ProtocolOpenAdapterComplete- funktion aufgerufen wird, wenn NdisOpenAdapter NDIS_STATUS_PENDING zurückgibt. Da diese Variablen so lange ungültig bleiben können, bis ProtocolOpenAdapterComplete- aufgerufen wird, können sie sich nicht im Stapel befinden. In der Regel befinden sich diese Variablen im ProtocolBindingContext Bereich, da es sich bei diesem Handle um einen Eingabeparameter für ProtocolOpenAdapterCompletehandelt.

Ein Protokolltreiber sollte den bei NdisProtocolHandlezurückgegebenen Handle beibehalten. Es ist ein erforderlicher Parameter für andere NdisXxx- Funktionen, die der Treiber anschließend aufruft. Die bereitgestellte ProtocolBindingContext- ist ein Eingabeparameter für die ProtocolXxx--Funktionen des Aufrufers, sodass Protokolle in der Regel einen NdisProtocolHandle- Zeiger an eine Variable an eine Variable in den aufrufenden Kontextbereich in ihren Aufrufen an NdisOpenAdapterübergeben.

Der Aufrufer verwendet den wert, der bei SelectedMediumIndex in nachfolgenden Aufrufen von NdisRequest und/oder NdisCoRequestzurückgegeben wird. Die im Anforderungspaket festgelegten OIDs hängen vom zurückgegebenen NdisMediumXxxab. Wenn beispielsweise NdisMediumAtm bei SelectedMediumIndexzurückgegeben wird, ruft der Protokolltreiber NdisCoRequest auf, wenn OID_ATM_ XXX-- oder OID_CO_XXX- codes angegeben wird, und NdisRequest beim Angeben OID_GEN_XXX- Codes.

Wenn NdisMediumWan- bei SelectedMediumIndexzurückgegeben wird, ruft der Protokolltreiber NdisRequest an, um OID_WAN_MEDIUM_SUBTYPE in einer Abfrage anzugeben, um zu bestimmen, welche WAN-Medientypen der zugrunde liegende Treiber verwendet.

Wenn eine zuvor ausgestellte globale Abfrage von OID_NETWORK_TYPE für drahtlose Medien angibt, dass der Treiber und die zugrunde liegende NIC mehrere NdisMediumWirelessWan-typ Medium unterstützen, muss das Protokoll eines der unterstützten Medien auswählen, sobald NDIS die Bindung eingerichtet hat und bevor das Protokoll das Headerformat auswählt.

Weitere Informationen zu den allgemeinen und mittelspezifischen OIDs, die Protokolltreiber für die Aushandlung mit einem just-gebundenen NDIS-Treiber verwenden, finden Sie unter NDIS-Objektbezeichner.

  • Zielplattform: universelle
  • Version: Für NDIS 6.0-Treiber in Windows Vista nicht unterstützt. Verwenden Sie stattdessen NdisOpenAdapterEx-. Unterstützt für NDIS 5.1-Treiber in Windows Vista und Windows XP.

Anforderungen

Anforderung Wert
Header- ndis.h (include Ndis.h)
Library Ndis.lib
IRQL- PASSIVE_LEVEL

Siehe auch