NdisMRegisterMiniportDriver-Funktion (ndis.h)

Ein Miniporttreiber ruft die NdisMRegisterMiniportDriver-Funktion auf, um MiniportXxx-Einstiegspunkte bei NDIS als ersten Schritt der Initialisierung zu registrieren.

Syntax

NDIS_STATUS NdisMRegisterMiniportDriver(
  [in]           PDRIVER_OBJECT                        DriverObject,
  [in]           PUNICODE_STRING                       RegistryPath,
  [in, optional] NDIS_HANDLE                           MiniportDriverContext,
  [in]           PNDIS_MINIPORT_DRIVER_CHARACTERISTICS MiniportDriverCharacteristics,
  [out]          PNDIS_HANDLE                          NdisMiniportDriverHandle
);

Parameter

[in] DriverObject

Ein Zeiger auf ein undurchsichtiges Treiberobjekt, das der Miniporttreiber in seiner DriverEntry-Routine beim Parameter Argument1 empfangen hat (siehe DriverEntry of NDIS Miniport Drivers).

[in] RegistryPath

Ein Zeiger auf einen undurchsichtigen Registrierungspfad, den der Miniporttreiber in seiner DriverEntry-Routine beim Parameter Argument2 empfangen hat.

[in, optional] MiniportDriverContext

Ein Handle für einen vom Treiber zugewiesenen Kontextbereich, in dem der Treiber Zustands- und Konfigurationsinformationen verwaltet.

[in] MiniportDriverCharacteristics

Ein Zeiger auf eine NDIS_MINIPORT_DRIVER_CHARACTERISTICS Struktur, die der Aufrufer initialisiert hat.

[out] NdisMiniportDriverHandle

Ein Zeiger auf eine vom Aufrufer bereitgestellte Handlevariable. NDIS schreibt ein Handle in diese Variable, das diesen Treiber eindeutig identifiziert. Der Treiber muss dieses Handle für die Verwendung in nachfolgenden NdisXxx-Funktionsaufrufen speichern.

Rückgabewert

NdisMRegisterMiniportDriver gibt einen der folgenden status Werte zurück:

Rückgabecode Beschreibung
NDIS_STATUS_SUCCESS

NdisMRegisterMiniportDriver hat den Miniporttreiber erfolgreich registriert.

NDIS_STATUS_BAD_CHARACTERISTICS
Der ParametersLength-Parameter ist für die NDIS-Version falsch, die am MajorNdisVersion-Element in der Struktur unter MiniportDriverCharacteristics angegeben wird.
NDIS_STATUS_BAD_VERSION
Die in der Eigenschaftenstruktur angegebene MajorNdisVersion oder MinorNdisVersion ist ungültig.
NDIS_STATUS_RESOURCES
Ein Mangel an Ressourcen, möglicherweise Arbeitsspeicher, verhinderte, dass NDIS den Aufrufer registriert.
NDIS_STATUS_FAILURE
Dies ist ein Standardfehler status, der zurückgegeben wird, wenn keiner der vorherigen Fehler dazu geführt hat, dass die Registrierung fehlschlägt.

Hinweise

Ein NDIS-Treiber ruft NdisMRegisterMiniportDriver aus seiner DriverEntry-Routine auf. Weitere Informationen finden Sie unter DriverEntry of NDIS Miniport Drivers.

Jeder Miniporttreiber exportiert einen Satz von MiniportXxx-Standardfunktionen , indem er die Eigenschaftenstruktur einrichtet und NdisMRegisterMiniportDriver aufruft. NDIS kopiert die Eigenschaftenstruktur in den internen NDIS-Speicher. Daher kann ein Treiber nach der Registrierung seine MiniportXxx-Einstiegspunkte nicht mehr ändern.

Um die virtuelle Miniportschnittstelle zu registrieren, muss ein NDIS-Zwischentreiber NdisMRegisterMiniportDriver aufrufen, wobei das flag NDIS_INTERMEDIATE_DRIVER in der Struktur unter MiniportDriverCharacteristics festgelegt ist. NDIS-Treiber, die über eine WDM-Unterkante verfügen, müssen NdisMRegisterMiniportDriver aufrufen, wobei das flag NDIS_WDM_DRIVER in der Struktur unter MiniportDriverCharacteristics festgelegt ist.

Fahrer können sich als kombinierter Miniporttreiber und Zwischenfahrer registrieren. Um seinen physischen Miniporttreiber zu registrieren, ruft ein Miniport-Intermediate-Treiber NdisMRegisterMiniportDriver mit den entsprechenden Parametern auf, genau wie für jeden Miniporttreiber. Um seine virtuelle Miniportschnittstelle zu registrieren, ruft der Treiber NdisMRegisterMiniportDriver erneut auf, jedoch mit dem im MiniportDriverCharacteristics-Parameter festgelegten NDIS_INTERMEDIATE_DRIVER Flag.

Damit Miniporttreiber optionale Dienste registrieren können, ruft NDIS die MiniportSetOptions-Funktion im Kontext von NdisMRegisterMiniportDriver auf.

Nachdem ein Treiber NdisMRegisterMiniportDriver aufgerufen hat, sollte der Treiber jederzeit nach der Rückgabe von DriverEntry auf den Rückruf der MiniportInitializeEx-Funktion vorbereitet werden, die im MiniportDriverCharacteristics-Parameter angegeben ist.

Wenn in DriverEntry ein Fehler auftritt, nachdem NdisMRegisterMiniportDriver erfolgreich zurückgegeben wurde, muss der Treiber die NdisMDeregisterMiniportDriver-Funktion , bevor DriverEntry zurückgegeben wird. Wenn DriverEntry erfolgreich ist, muss der Treiber NdisMDeregisterMiniportDriver über seine MiniportDriverUnload-Funktion aufrufen.

Anforderungen

Anforderung Wert
Unterstützte Mindestversion (Client) Unterstützt in NDIS 6.0 und höher.
Zielplattform Universell
Header ndis.h (include Ndis.h)
Bibliothek Ndis.lib
IRQL PASSIVE_LEVEL
DDI-Complianceregeln Irql_Miniport_Driver_Function(ndis)

Weitere Informationen

Initialisieren eines Miniporttreibers

DriverEntry

MiniportDriverUnload

MiniportInitializeEx

MiniportSetOptions

NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver