Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
Um das Ändern von Unterbrechungsaffinitäten für MSI-X oder das Entfernen von Nachrichtenunterbrechungsressourcen zu unterstützen, muss ein Miniporttreiber eine Filterfunktion für Ressourcenanforderungen einrichten. Dieser Schritt vor der Registrierung tritt auf, bevor NDIS die MiniportInitializeEx-Funktion aufruft.
Um eine Filterfunktion für Ressourcenanforderungen einzurichten, muss der Miniporttreiber eine MiniportOptions-Funktion bereitstellen. Wenn der Miniporttreiber die NdisMRegisterMiniportDriver-Funktion aus der DriverEntry-Routine aufruft, übergibt der Treiber den Einstiegspunkt für MiniportSetOptions in der NDIS_MINIPORT_DRIVER_CHARACTERISTICS-Struktur . NDIS ruft die MiniportSetOptions-Funktion im Kontext von NdisMRegisterMiniportDriver auf.
Von MiniportSetOptions ruft der Miniporttreiber die NdisSetOptionalHandlers-Funktion auf und gibt eine NDIS_MINIPORT_PNP_CHARACTERISTICS Struktur an. Diese Struktur definiert die Einstiegspunkte für die Funktionen MiniportAddDevice, MiniportRemoveDevice, MiniportStartDevice und MiniportFilterResourceRequirements .
Wenn NDIS eine Add-Device-Anforderung vom Plug and Play (PnP)-Manager empfängt, ruft NDIS die Miniport-Treiberfunktion MiniportAddDevice auf. Das Handle, das NDIS an MiniportAddDevice im MiniportAdapterHandle-Parameter übergibt, ist das Handle, das NDIS später an die MiniportInitializeEx-Funktion übergibt.
In MiniportAddDevice initialisiert der Treiber eine NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES Struktur und übergibt diese Struktur an die NdisMSetMiniportAttributes-Funktion . Die NDIS_MINIPORT_ADD_DEVICE_REGISTRATION_ATTRIBUTES-Struktur enthält das MiniportAddDeviceContext-Element , das ein Handle für einen vom Miniport-Treiber zugewiesenen Kontextbereich für das Gerät ist. NDIS stellt später dieses Kontexthandle für die Funktionen MiniportRemoveDevice, MiniportFilterResourceRequirements, MiniportStartDevice und MiniportInitializeEx bereit. Für MiniportInitializeEx wird das Kontexthandle im MiniportAddDeviceContext-Element der NDIS_MINIPORT_INIT_PARAMETERS Struktur übergeben, auf die der MiniportInitParameters-Parameter verweist.
Nachdem NDIS MiniportAddDevice und MiniportAddDevice NDIS_STATUS_SUCCESS aufgerufen haben, ruft NDIS die Funktion MiniportFilterResourceRequirements jedes Mal auf, wenn es das IRP_MN_FILTER_RESOURCE_REQUIREMENTS E/A-Anforderungspaket (IRP) empfängt. MiniportFilterResourceRequirements können die Unterbrechungsaffinität für jede MSI-X Nachricht ändern, Nachrichtenunterbruchressourcen hinzufügen oder Nachrichtenunterbruchressourcen entfernen, wenn der Treiber für zeilenbasierte Unterbrechungen in der MiniportInitializeEx-Funktion registriert wird. Weitere Informationen zum Einrichten einer Interrupt-Affinitätsrichtlinie finden Sie unter MSI-X Ressourcenfilterung.
Wenn NDIS eine Remove-Device-Anforderung vom PnP-Manager empfängt, ruft NDIS die MiniportRemoveDevice-Funktion des Miniporttreibers auf. Die MiniportRemoveDevice-Funktion sollte die Vorgänge rückgängigmachen, die von der MiniportAddDevice-Funktion ausgeführt wurden.