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.
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
MiniportDevicePnPEventNotify