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 |
---|---|
|
NdisMRegisterMiniportDriver hat den Miniporttreiber erfolgreich registriert. |
|
Der ParametersLength-Parameter ist für die NDIS-Version falsch, die am MajorNdisVersion-Element in der Struktur unter MiniportDriverCharacteristics angegeben wird. |
|
Die in der Eigenschaftenstruktur angegebene MajorNdisVersion oder MinorNdisVersion ist ungültig. |
|
Ein Mangel an Ressourcen, möglicherweise Arbeitsspeicher, verhinderte, dass NDIS den Aufrufer registriert. |
|
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
NDIS_MINIPORT_DRIVER_CHARACTERISTICS NdisMDeregisterMiniportDriver