NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur (ndis.h)
Ein NDIS-Treiber initialisiert eine NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur , um seine Miniporttreibereigenschaften zu definieren, einschließlich der Einstiegspunkte für seine MiniportXxx-Funktionen .
typedef struct _NDIS_MINIPORT_DRIVER_CHARACTERISTICS {
NDIS_OBJECT_HEADER Header;
UCHAR MajorNdisVersion;
UCHAR MinorNdisVersion;
UCHAR MajorDriverVersion;
UCHAR MinorDriverVersion;
ULONG Flags;
SET_OPTIONS_HANDLER SetOptionsHandler;
MINIPORT_INITIALIZE_HANDLER InitializeHandlerEx;
MINIPORT_HALT_HANDLER HaltHandlerEx;
MINIPORT_DRIVER_UNLOAD UnloadHandler;
MINIPORT_PAUSE_HANDLER PauseHandler;
MINIPORT_RESTART_HANDLER RestartHandler;
MINIPORT_OID_REQUEST_HANDLER OidRequestHandler;
MINIPORT_SEND_NET_BUFFER_LISTS_HANDLER SendNetBufferListsHandler;
MINIPORT_RETURN_NET_BUFFER_LISTS_HANDLER ReturnNetBufferListsHandler;
MINIPORT_CANCEL_SEND_HANDLER CancelSendHandler;
MINIPORT_CHECK_FOR_HANG_HANDLER CheckForHangHandlerEx;
MINIPORT_RESET_HANDLER ResetHandlerEx;
MINIPORT_DEVICE_PNP_EVENT_NOTIFY_HANDLER DevicePnPEventNotifyHandler;
MINIPORT_SHUTDOWN_HANDLER ShutdownHandlerEx;
MINIPORT_CANCEL_OID_REQUEST_HANDLER CancelOidRequestHandler;
MINIPORT_DIRECT_OID_REQUEST_HANDLER DirectOidRequestHandler;
MINIPORT_CANCEL_DIRECT_OID_REQUEST_HANDLER CancelDirectOidRequestHandler;
MINIPORT_SYNCHRONOUS_OID_REQUEST_HANDLER SynchronousOidRequestHandler;
} NDIS_MINIPORT_DRIVER_CHARACTERISTICS, *PNDIS_MINIPORT_DRIVER_CHARACTERISTICS;
Header
Die NDIS_OBJECT_HEADER-Struktur für die NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur . Legen Sie den Typmember der Struktur, die Header angibt, auf NDIS_OBJECT_TYPE_MINIPORT_DRIVER_CHARACTERISTICS fest.
Um die Version der NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur anzugeben, legen Sie den Revisionsmember auf einen der folgenden Werte fest:
Das SynchronousOidRequestHandler-Element für NDIS 6.80 wurde hinzugefügt.
Legen Sie das Element Größe auf NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3 fest.
Die Member DirectOidRequestHandler und CancelDirectOidRequestHandler für NDIS 6.1 wurden hinzugefügt.
Legen Sie das Element Größe auf NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2 fest.
Originalversion für NDIS 6.0.
Legen Sie das Element Größe auf NDIS_SIZEOF_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1 fest.
MajorNdisVersion
Die Hauptversion der NDIS-Bibliothek, die der Treiber verwendet. Der aktuelle Wert ist 0x06.
MinorNdisVersion
Die NDIS-Nebenversion. Im Folgenden finden Sie die verfügbaren Nebenversionswerteinstellungen.
Wert | Bedeutung |
---|---|
0 | NDIS 6 |
20 | NDIS 6.20 |
30 | NDIS 6.30 |
40 | NDIS 6.40 |
50 | NDIS 6.50 |
51 | NDIS 6.51 |
60 | NDIS 6.60 |
70 | NDIS 6.70 |
80 | NDIS 6.80 |
81 | NDIS 6.81 |
82 | NDIS 6.82 |
83 | NDIS 6.83 |
84 | NDIS 6.84 |
85 | NDIS 6.85 |
86 | NDIS 6.86 |
87 | NDIS 6.87 |
88 | NDIS 6.88 |
89 | NDIS 6.89 |
MajorDriverVersion
Reserviert für die Hauptversionsnummer des Treibers. Miniport-Treiber können einen beliebigen Wert angeben, den sie benötigen.
MinorDriverVersion
Reserviert für die Nebenversionsnummer des Treibers. Miniport-Treiber können einen beliebigen Wert angeben, den sie benötigen.
Flags
Eine Bitmaske, die auf null oder eines der folgenden Flags festgelegt werden kann, kombiniert mit bitweisem OR:
Legen Sie fest, ob der Aufrufer ein NDIS-Zwischentreiber ist.
Legen Sie fest, ob der Aufrufer ein NDIS-WDM-Miniporttreiber ist.
SetOptionsHandler
Der Einstiegspunkt für die MiniportSetOptions-Funktion des Aufrufers.
Erforderlich für Co-NDIS. Empfohlen für Ethernet-Miniporttreiber, die RSS mit MSI-C über PCI unterstützen.
InitializeHandlerEx
Erforderlich. Der Einstiegspunkt für die MiniportInitializeEx-Funktion .
HaltHandlerEx
Erforderlich. Der Einstiegspunkt für die MiniportHaltEx-Funktion .
UnloadHandler
Erforderlich. Der Einstiegspunkt für die MiniportDriverUnload-Funktion .
PauseHandler
Erforderlich. Der Einstiegspunkt für die MiniportPause-Funktion .
RestartHandler
Erforderlich. Der Einstiegspunkt für die MiniportRestart-Funktion .
OidRequestHandler
Der Einstiegspunkt für die MiniportOidRequest-Funktion . Erforderlich für alle verbindungslosen Miniporttreiber, einschließlich aller Ethernet-, WLAN- und Chattreiber. Optional für einige CoNDIS-Miniporttreiber.
SendNetBufferListsHandler
Erforderlich. Der Einstiegspunkt für die MiniportSendNetBufferLists-Funktion .
ReturnNetBufferListsHandler
Erforderlich. Der Einstiegspunkt für die MiniportReturnNetBufferLists-Funktion .
CancelSendHandler
Erforderlich. Der Einstiegspunkt für die MiniportCancelSend-Funktion .
CheckForHangHandlerEx
Optional. Der Einstiegspunkt für die MiniportCheckForHangEx-Funktion .
MiniportCheckForHangEx ist für Zwischentreiber oder virtuelle Miniports nicht erforderlich, da es sich nicht um physische Geräte handelt, die hängen können. Daher muss dieser Einstiegspunkt auf NULL festgelegt werden.
MiniportCheckForHangEx ist auf allen AOAC-Geräten aufgrund der Auswirkungen auf die Akkulaufzeit verboten, daher müssen Miniporttreiber für diese Geräte diesen Einstiegspunkt auf NULL festlegen.
MiniportCheckForHangEx wird für Miniporttreiber abgeraten, die auf Nicht-AOAC-Geräten installiert werden sollen, batteriebetriebene Geräte aufgrund der Auswirkungen auf die Akkulaufzeit. Daher sollten sie diesen Einstiegspunkt auf NULL festlegen.
MiniportCheckForHangEx ist zulässig, aber nicht erforderlich für Miniporttreiber, die für die Installation in netzbetriebenen Geräten vorgesehen sind. Für Treiber, die auf NDIS 6.30 und höher abzielen, sollten Sie stattdessen NdisMResetMiniport verwenden.
ResetHandlerEx
Optional (erforderlich, wenn Sie CheckForHangHandlerEx bereitstellen). Der Einstiegspunkt für die MiniportResetEx-Funktion . MiniportResetEx ist für Zwischentreiber nicht erforderlich, daher sollte dieser Einstiegspunkt auf NULL festgelegt werden.
DevicePnPEventNotifyHandler
Erforderlich. Der Einstiegspunkt für die MiniportDevicePnPEventNotify-Funktion .
ShutdownHandlerEx
Erforderlich. Der Einstiegspunkt für die MiniportShutdownEx-Funktion .
CancelOidRequestHandler
Erforderlich. Der Einstiegspunkt für die MiniportCancelOidRequest-Funktion .
DirectOidRequestHandler
Der Einstiegspunkt für die MiniportDirectOidRequest-Funktion . Dies ist ein optionaler Einstiegspunkt. Legen Sie diesen Member auf NULL fest, wenn der Miniporttreiber keine direkten OID-Anforderungen verarbeitet.
Optional für Ethernet; Wenn jedoch eine bereitgestellt wird, müssen beide bereitgestellt werden.
Erforderlich für WLAN- und Ethernet-Miniports, die RDMA- oder IPSec-Auslagerung implementieren.
CancelDirectOidRequestHandler
Der Einstiegspunkt für die MiniportCancelDirectOidRequest-Funktion . Dies ist ein optionaler Einstiegspunkt. Legen Sie diesen Member auf NULL fest, wenn der Miniporttreiber keine direkten OID-Anforderungen verarbeitet.
Optional für Ethernet; Wenn jedoch eine bereitgestellt wird, müssen beide bereitgestellt werden.
Erforderlich für WLAN- und Ethernet-Miniports, die RDMA- oder IPSec-Auslagerung implementieren.
SynchronousOidRequestHandler
Der Einstiegspunkt für die MiniportSynchronousOidRequest-Funktion . Dies ist ein optionaler Einstiegspunkt. Legen Sie diesen Member auf NULL fest, wenn der Miniporttreiber keine synchronen OID-Anforderungen verarbeitet.
Erforderlich für WLAN- und Ethernet-Miniports, die RSSv2 implementieren.
Ein NDIS-Treiber übergibt einen Zeiger auf seine NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur im MiniportDriverCharacteristics-Parameter des NdisMRegisterMiniportDriver-Funktion . Ein Miniporttreiber ruft NdisMRegisterMiniportDriver aus seiner DriverEntry-Routine auf (siehe auch DriverEntry of NDIS Miniport Drivers).
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Kopfzeile | ndis.h (einschließlich Ndis.h) |