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;
Angehörige
Header
Der Typ, die Überarbeitung und die Größe der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES Struktur. Dieses Element ist als NDIS_OBJECT_HEADER Struktur formatiert.
Der Miniporttreiber muss den Type Member von Header- auf NDIS_OBJECT_TYPE_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES festlegen. Um die Version der NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES-Struktur anzugeben, muss der Treiber das element RevisionHeader- auf einen der folgenden Werte festlegen:
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2
AttributeFlags Flags für NDIS 6.30 hinzugefügt.
Legen Sie den Size Member auf NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_2 fest.
NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1
Originalversion für NDIS 6.0.
Legen Sie das element Größe auf NDIS_SIZEOF_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES_REVISION_1 fest.
MiniportAdapterContext
Ein Handle zu einem Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx--Funktion zugewiesen hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Miniportadapter beizubehalten.
AttributeFlags
Eine Bitmaske von Flags, die mit einem bitweisen OR kombiniert werden. NDIS-Miniporttreiber sollten mindestens eine 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 werden Hardwareressourcen wie Unterbrechungen, E/A-Ports, speicherzuordnunge E/A- oder DMA-Kanäle zugewiesen, die der Miniporttreiber vom 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, Unterbrechungen, speicherzuordnungen 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 Anrufers ein DMA-Gerät mit Busmaster ist.
NDIS_MINIPORT_ATTRIBUTES_NO_HALT_ON_SUSPEND
Legen Sie fest, ob NDIS nicht die MiniportHaltEx- funktion eines Miniporttreibers aufrufen soll, bevor das System in einen Ruhezustand wechselt. Treiber, die auf dem vom Hardware verwalteten Zustand basieren, sollten dieses Kennzeichen nicht festlegen.
NDIS_MINIPORT_ATTRIBUTES_SURPRISE_REMOVE_OK
Legen Sie fest, ob der Miniporttreiber die Entfernung seiner NIC ohne Benutzerbenachrichtigung verarbeiten kann. NDIS-Treiber erhalten Überraschungs-Entfernungsbenachrichtigungen auf der MiniportDevicePnPEventNotify Funktion.
NDIS_MINIPORT_ATTRIBUTES_NOT_CO_NDIS
Wird von einem 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 von einem 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 von einem 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 Kennzeichen festgelegt, wenn der Miniporttreiber ohne Pause in einen Energiesparmodus wechseln kann.
Weitere Informationen zu dieser Kennzeichnung finden Sie im Abschnitt "Hinweise".
NDIS_MINIPORT_ATTRIBUTES_NO_OID_INTERCEPT_ON_NONDEFAULT_PORTS
Ab NDIS 6.30 wird dieses Flag festgelegt, wenn der Miniporttreiber OIDs für nicht standardmäßige Ports verarbeitet, die in der Regel von NDIS abgefangen und im Auftrag von NDIS verarbeitet werden. Dadurch wird das Verhalten von OIDs, die an den Standardport bestimmt sind, nicht geändert.
NDIS_MINIPORT_ATTRIBUTES_REGISTER_BUGCHECK_CALLBACK
Ab NDIS 6.30 Miniports ruft NDIS den Miniports MiniportShutdownEx-Handler während eines BugCheck-Vorgangs nicht auf, es sei denn, dieses Flag ist festgelegt. Die meisten Miniports sollten diese Kennzeichnung nicht festlegen.
CheckForHangTimeInSeconds
Das Timeoutintervall in Sekunden, in dem NDIS die MiniportCheckForHangEx Funktion. Wenn ein Miniporttreiber nicht auf eine OID-Anforderung oder eine Sendeanforderung innerhalb von zwei aufeinander folgenden Aufrufen von MiniportCheckForHangExgeantwortet hat, kann NDIS die MiniportResetEx- Funktion des Miniporttreibers aufrufen.
Das Intervall, das NDIS beim Aufrufen MiniportCheckForHangEx- verwendet, ist immer ein Vielfaches von 2 Sekunden. Wenn Sie beispielsweise 5 Sekunden angeben, beträgt das Intervall etwa 4 Sekunden.
Wenn dieses Element 0 ist, beträgt das Standardtimeoutintervall 2 Sekunden.
InterfaceType
Der I/O-Bus-Schnittstellentyp des Miniportadapters. Dies ist in der Regel der Typ des E/A-Busses, auf dem 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 Schnittstelle "Personal Computer Memory Card International Association (PC Card)" 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 Strombus an.
NdisInterfacePNPISABus
Gibt den PNPISABus an.
NdisInterfacePNPBus
Gibt den PNPBus an.
Dieser Parameter ist für Zwischentreiber irrelevant, die 0 für dieses Element angeben sollen.
Bemerkungen
Ein Miniporttreiber übergibt einen Zeiger an eine NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES Struktur im MiniportAttributes Parameter des NdisMSetMiniportAttributes Funktion. Ein Miniporttreiber ruft NdisMSetMiniportAttributes aus seiner MiniportInitializeEx--Funktion während der Initialisierung auf.
Miniport-Treiber sollten die Attribute in NDIS_MINIPORT_ADAPTER_REGISTRATION_ATTRIBUTES so bald wie möglich innerhalb 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 umgestellt wird. Wenn der Treiber dieses OID verarbeitet, muss er den Miniportadapter für den Übergang zum niedrigeren Leistungszustand vorbereiten und nicht auf den Abschluss der ausstehenden Empfangspaketanzeigen warten.Bevor NDIS die OID-Anforderung von OID_PNP_SET_POWER an den Miniporttreiber ausgibt, ruft NDIS die MiniportPause Funktion des Miniporttreibers auf, wie unten beschrieben:
- Wenn das NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND Flag 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- Anrufs muss der Treiber auf den Abschluss der ausstehenden Empfangspaketanzeigen warten.
-
Wenn das NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND Flag 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 beim Vorbereiten des Miniportadapters für den Übergang zu einem Energiesparzustand zuvor angehalten wurde.
Hinweis Die Ausnahme tritt auf, wenn ein Protokoll- oder Filtertreiber, der NDIS 6.20 oder frühere Versionen von NDIS unterstützt, an den Miniportadapter gebunden oder angefügt ist. In diesem Fall ruft NDIS die MiniportPause Funktion des Miniporttreibers auf, unabhängig davon, ob der Miniporttreiber das NDIS_MINIPORT_ATTRIBUTES_NO_PAUSE_ON_SUSPEND Flag festlegt.
Anforderungen
Anforderung | Wert |
---|---|
mindestens unterstützte Client- | Unterstützt in NDIS 6.0 und höher. |
Header- | ndis.h (include Ndis.h) |
Siehe auch
Miniport adapter Check-for-Hang and Reset Operations
MiniportDevicePnPEventNotify