NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur (ndis.h)

Ein NDIS-Treiber initialisiert eine NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur , um die Eigenschaften des Miniporttreibers zu definieren, einschließlich der Einstiegspunkte für seine MiniportXxx-Funktionen .

Syntax

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;

Member

Header

Die NDIS_OBJECT_HEADER-Struktur für die NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur . Legen Sie das Type-Element 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:

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_3

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.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_2

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.

NDIS_MINIPORT_DRIVER_CHARACTERISTICS_REVISION_1

Ursprüngliche Version 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 nebenstehende NDIS-Version. Im Folgenden sind die verfügbaren Nebenversionswerteinstellungen aufgeführt.

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

MajorDriverVersion

Reserviert für die Hauptversionsnummer des Treibers. Miniporttreiber können einen beliebigen Wert angeben, den sie benötigen.

MinorDriverVersion

Reserviert für die Nebenversionsnummer des Treibers. Miniporttreiber 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:

NDIS_INTERMEDIATE_DRIVER

Legen Sie fest, ob der Aufrufer ein NDIS-Zwischentreiber ist.

NDIS_WDM_DRIVER

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 Funktion MiniportCancelSend .

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.

Hinweise

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

Anforderungen

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

Weitere Informationen

DriverEntry

MiniportCancelDirectOidRequest

MiniportCancelOidRequest

MiniportCancelSend

MiniportCheckForHangEx

MiniportDevicePnPEventNotify

MiniportDirectOidRequest

MiniportDriverUnload

MiniportHaltEx

MiniportInitializeEx

MiniportOidRequest

MiniportPause

MiniportResetEx

MiniportRestart

MiniportReturnNetBufferLists

MiniportSendNetBufferLists

MiniportSetOptions

MiniportShutdownEx

NdisMRegisterMiniportDriver