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.
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;
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:
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.
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:
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 .
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.
Legen Sie fest, ob die NIC des Aufrufers ein Bus-master DMA-Gerät ist.
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.
Legen Sie fest, ob der Miniporttreiber das Entfernen seiner NIC ohne Benutzerbenachrichtigung verarbeiten kann. NDIS-Treiber erhalten überraschende Entfernungsbenachrichtigungen am MiniportDevicePnPEventNotify-Funktion .
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.
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.
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.
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.
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:
Gibt eine hostspezifische interne Schnittstelle an.
Gibt die ISA-Schnittstelle an.
Gibt die erweiterte ISA-Schnittstelle (EISA) an. Dieser Schnittstellentyp wird in NDIS 6.0 und höheren Versionen nicht unterstützt.
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.
Gibt die Turbo Channel-Schnittstelle an.
Gibt die PCI-Schnittstelle (Peripheral Component Interconnect) an.
Gibt die Pc Card-Schnittstelle (Personal Computer Memory Card International Association) an.
Gibt den CBus an.
Gibt den MPIBus an.
Gibt den MPSABus an.
Gibt den internen Prozessorbus an.
Gibt den internen Power Bus an.
Gibt den PNPISABus an.
Gibt den PNPBus an.
Dieser Parameter ist für Zwischentreiber irrelevant, die für dieses Element 0 angeben sollten.
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 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.
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Kopfzeile | ndis.h (include Ndis.h) |
Miniport Adapter Check-for-Hang und Reset-Vorgänge
MiniportDevicePnPEventNotify