NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur (ndis.h)

Ein NDIS-Miniporttreiber richtet eine NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur ein, um Registrierungsattribute zu definieren, die einem Miniportadapter zugeordnet sind.

Syntax

typedef struct _NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES {
  NDIS_OBJECT_HEADER  Header;
  NDIS_HANDLE         MiniportAdapterContext;
  ULONG               AttributeFlags;
  UINT                CheckForHangTimeInSeconds;
  NDIS_INTERFACE_TYPE InterfaceType;
} NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES, *PNDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES;

Member

Header

Der Typ, die Revision und die Größe der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES Struktur. Dieses Element ist als NDIS_OBJECT_HEADER-Struktur formatiert.

Der Miniporttreiber muss das Type-Element des Headers auf NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES festlegen. Um die Version der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur anzugeben, muss der Treiber das Revisionselement des Headers auf einen der folgenden Werte festlegen:

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2

AttributFlags-Flags für NDIS 6.30 hinzugefügt.

Legen Sie das Element Größe auf NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2 fest.

NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1

Ursprüngliche Version für NDIS 6.0.

Legen Sie das Element Größe auf NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1 fest.

MiniportAdapterContext

Ein Handle für einen Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx-Funktion zugeordnet hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Miniportadapter zu verwalten.

AttributeFlags

Eine Bitmaske von Flags, die mit einem bitweisen OR kombiniert werden. NDIS-Miniporttreiber sollten mindestens eins der folgenden Flags festlegen:

NDIS_MINIPORT_ATTRIBUTES_HARDWARE_DEVICE

Legen Sie fest, ob der Miniporttreiber ein physisches Gerät direkt steuert. Dem physischen Gerät sind Hardwareressourcen wie Interrupts, E/A-Ports, speicherbezogene E/A- oder DMA-Kanäle zugewiesen, die der Miniporttreiber von der MiniportInitializeEx-Funktion .

NDIS_MINIPORT_ATTRIBUTES_NDIS_WDM

Legen Sie fest, ob die untere Schnittstelle des Miniportadapters ein WDM-Bustreiber wie USB oder IEEE 1394 ist. In diesem Fall weist der Miniporttreiber keine Hardwareressourcen wie E/A-Ports, Interrupts, speicherbezogene E/A- oder DMA-Kanäle zu. Stattdessen kommuniziert der Treiber über die WDM-Schnittstelle des zugrunde liegenden Bustreibers mit dem Gerät.

NDIS_MINIPORT_ATTRIBUTES_BUS_MASTER

Legen Sie fest, ob die NIC des Aufrufers ein Bus-master DMA-Gerät ist.

NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND

Legen Sie fest, ob NDIS die MiniportHaltEx-Funktion eines Miniporttreibers nicht aufrufen soll, bevor das System in einen Zustand mit geringer Leistung (Ruhezustand) wechselt. Treiber, die auf dem Hardwarezustand basieren, sollten dieses Flag nicht festlegen.

NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK

Legen Sie fest, ob der Miniporttreiber das Entfernen seiner NIC ohne Benutzerbenachrichtigung verarbeiten kann. NDIS-Treiber erhalten überraschende Entfernungsbenachrichtigungen am MiniportDevicePnPEventNotify-Funktion .

NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS

Wird durch einen Miniporttreiber festgelegt, der sowohl verbindungsorientierte als auch verbindungslose Geräte unterstützen kann, um anzugeben, dass es sich bei dem Gerät um ein verbindungsloses Gerät handelt.

NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO

Wird durch einen CoNDIS-Miniporttreiber festgelegt, der keine TAPI-Dienste bereitstellt. Das Festlegen NDIS_MINIPORT_ATTRIBUTES_DO_NOT_BIND_TO_ALL_CO verhindert, dass NDIS den Miniporttreiber an den NDIS TAPI-Proxytreiber (NDPROXY) bindet. Standardmäßig bindet NDIS NDPROXY an alle CoNDIS-Miniporttreiber.

NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT

Wird durch einen Miniporttreiber festgelegt, der die NdisMNetPnPEvent-Funktion aufruft, um den Standardport zu aktivieren. Wenn NDIS_MINIPORT_ATTRIBUTES_CONTROLS_DEFAULT_PORT nicht festgelegt ist, ist der Standardport aktiv. NDIS bindet keine Protokolltreiber oder fügt Filtermodule an einen Miniportadapter an, wenn der Standardport nicht aktiv ist.

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND

Ab NDIS 6.30 wird dieses Flag festgelegt, wenn der Miniporttreiber in der Lage ist, ohne Angehalten in einen Zustand mit niedriger Leistung zu wechseln.

Weitere Informationen zu diesem Flag finden Sie im Abschnitt Hinweise.

NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK

Ab NDIS 6.30-Miniports ruft NDIS den MiniportShutdownEx-Handler während einer BugCheck-Überprüfung nicht auf, es sei denn, dieses Flag ist festgelegt. Die meisten Miniports sollten dieses Flag nicht festlegen.

CheckForHangTimeInSeconds

Das Timeoutintervall in Sekunden, in dem NDIS die MiniportCheckForHangEx-Funktion . Wenn ein Miniporttreiber innerhalb von zwei aufeinander folgenden Aufrufen von MiniportCheckForHangEx nicht auf eine OID- oder Sendeanforderung reagiert hat, kann NDIS die MiniportResetEx-Funktion des Miniporttreibers aufrufen.

Das Intervall, das NDIS beim Aufrufen von MiniportCheckForHangEx verwendet, ist immer ein Vielfaches von 2 Sekunden. Wenn Sie beispielsweise 5 Sekunden angeben, beträgt das Intervall ungefähr 4 Sekunden.

Wenn dieser Member 0 ist, beträgt das Standardtimeoutintervall 2 Sekunden.

Hinweis Das Timeoutintervall muss größer als die Initialisierungszeit Ihres Miniporttreibers sein. Weitere Informationen finden Sie unter Miniport Adapter Check-for-Hang and Reset Operations.
 

InterfaceType

Der E/A-Busschnittstellentyp des Miniportadapters. Dies ist in der Regel der Typ des E/A-Busses, an den der Miniportadapter angeschlossen ist. Die folgenden Werte werden in NDIS 6.0 unterstützt:

NdisInterfaceInternal

Gibt eine hostspezifische interne Schnittstelle an.

NdisInterfaceIsa

Gibt die ISA-Schnittstelle an.

NdisInterfaceeisa

Gibt die erweiterte ISA-Schnittstelle (EISA) an. Dieser Schnittstellentyp wird in NDIS 6.0 und höheren Versionen nicht unterstützt.

NdisInterfaceMca

Bezieht sich auf den MCA-Bus, der nicht mehr unterstützt wird. Dieser Schnittstellentyp wird in NDIS 6.0 und höheren Versionen nicht unterstützt.

NdisInterfaceTurboChannel

Gibt die Turbo Channel-Schnittstelle an.

NdisInterfacePci

Gibt die PCI-Schnittstelle (Peripheral Component Interconnect) an.

NdisInterfacePcMcia

Gibt die Pc Card-Schnittstelle (Personal Computer Memory Card International Association) an.

NdisInterfaceCBus

Gibt den CBus an.

NdisInterfaceMPIBus

Gibt den MPIBus an.

NdisInterfaceMPSABus

Gibt den MPSABus an.

NdisInterfaceProcessorInternal

Gibt den internen Prozessorbus an.

NdisInterfaceInternalPowerBus

Gibt den internen Power Bus an.

NdisInterfacePNPISABus

Gibt den PNPISABus an.

NdisInterfacePNPBus

Gibt den PNPBus an.

Dieser Parameter ist für Zwischentreiber irrelevant, die für dieses Element 0 angeben sollten.

Hinweise

Ein Miniporttreiber übergibt einen Zeiger auf eine NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES Struktur im MiniportAttributes-Parameter des NdisMSetMiniportAttributes-Funktion . Ein Miniporttreiber ruft während der Initialisierung NdisMSetMiniportAttributes über seine MiniportInitializeEx-Funktion auf.

Miniport-Treiber sollten die Attribute in NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES so bald wie möglich in MiniportInitializeEx festlegen. Das Festlegen dieser Attribute ist obligatorisch.

NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND-Flag

NDIS gibt eine OID-Anforderung von OID_PNP_SET_POWER an den Miniporttreiber aus, bevor der zugrunde liegende Miniportadapter in einen Energiesparzustand von D1, D2 oder D3 übergehen wird. Wenn der Treiber diese OID verarbeitet, muss er den Miniportadapter für den Übergang zum niedrigeren Leistungszustand vorbereiten und darf nicht auf den Abschluss der ausstehenden Empfangspaketanzeigen warten.

In einigen Fällen ruft NDIS die MiniportPause-Funktion des Miniporttreibers auf, bevor NDIS die OID-Anforderung von OID_PNP_SET_POWER an den Miniporttreiber ausgibt, wie unten beschrieben:

  • Wenn das flag NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND nicht festgelegt ist, ruft NDIS die MiniportPause-Funktion des Miniporttreibers auf, bevor die OID-Anforderung von OID_PNP_SET_POWER an den Treiber ausgegeben wird. Im Kontext des MiniportPause-Aufrufs muss der Treiber auf den Abschluss der ausstehenden Empfangspaketanzeigen warten.
  • Wenn das flag NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND festgelegt ist, ruft NDIS die MiniportPause-Funktion des Miniporttreibers nicht auf, bevor die OID-Anforderung von OID_PNP_SET_POWER an den Treiber ausgegeben wird. Wenn der Miniporttreiber die OID-Anforderung verarbeitet, darf er nicht davon ausgehen, dass er zuvor angehalten wurde, als er den Miniportadapter für den Übergang in einen Low-Power-Zustand vorbereitet hat.
    Hinweis Die Ausnahme tritt auf, wenn ein Protokoll- oder Filtertreiber, der NDIS 6.20 oder frühere Versionen von NDIS unterstützt, gebunden oder an den Miniportadapter angefügt ist. In diesem Fall ruft NDIS die MiniportPause-Funktion des Miniporttreibers auf, unabhängig davon, ob der Miniporttreiber das flag NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND festlegt.
     

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Kopfzeile ndis.h (include Ndis.h)

Weitere Informationen

Miniport Adapter Check-for-Hang und Reset-Vorgänge

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportHaltEx

MiniportInitializeEx

MiniportPause

MiniportResetEx

NDIS_OBJECT_HEADER

NdisMNetPnPEvent

NdisMSetMiniportAttributes

OID_PNP_SET_POWER