MINIPORT_CANCEL_OID_REQUEST Rückruffunktion (ndis.h)
NDIS ruft die MiniportCancelOidRequest-Funktion eines Miniporttreibers auf, um eine OID-Anforderung abzubrechen.
Syntax
MINIPORT_CANCEL_OID_REQUEST MiniportCancelOidRequest;
void MiniportCancelOidRequest(
[in] NDIS_HANDLE MiniportAdapterContext,
[in] PVOID RequestId
)
{...}
Parameter
[in] MiniportAdapterContext
Ein Handle für einen Kontextbereich, den der Miniporttreiber in seiner MiniportInitializeEx-Funktion zugeordnet hat. Der Miniporttreiber verwendet diesen Kontextbereich, um Zustandsinformationen für einen Miniportadapter zu verwalten.
[in] RequestId
Ein Abbruchbezeichner für die Anforderung. Dieser Bezeichner gibt die NDIS_OID_REQUEST Strukturen an, die abgebrochen werden.
Rückgabewert
Keine
Bemerkungen
Ein Treiber gibt den Einstiegspunkt MiniportCancelOidRequest an, wenn er die NdisMRegisterMiniportDriver-Funktion .
Wenn NDIS MiniportCancelOidRequest aufruft, sollte der Miniporttreiber versuchen, die NdisMOidRequestComplete-Funktion so schnell wie möglich aufzurufen.
Die Anforderungsparameter werden in der NDIS_OID_REQUEST-Struktur unter OidRequest definiert.
NDIS ruft MiniportCancelOidRequest auf, entweder wenn der Absender der Anforderung die Anforderung abbricht oder wenn das timeout angegebene Timeout abläuft.
Wenn die Anforderungsverarbeitung in einem Miniporttreiber immer noch nicht abgeschlossen ist, ruft der Treiber die NdisMOidRequestComplete-Funktion auf, wobei die status auf NDIS_STATUS_REQUEST_ABORTED festgelegt ist.
Wenn die Anforderungsverarbeitung in einem Zwischentreiber immer noch nicht abgeschlossen ist und die Anforderung an einen zugrunde liegenden Treiber weitergegeben wurde, ruft der Zwischentreiber die NdisCancelOidRequest-Funktion auf, wobei der OidRequest-Parameter auf den Wert festgelegt ist, den er an den zugrunde liegenden Treiber gesendet hat.
NDIS ruft MiniportCancelOidRequest unter IRQL <= DISPATCH_LEVEL auf.
Beispiele
Um eine MiniportCancelOidRequest-Funktion zu definieren, müssen Sie zuerst eine Funktionsdeklaration bereitstellen, die den Typ der zu definierenden Funktion identifiziert. Windows stellt eine Reihe von Funktionstypen für Treiber bereit. Das Deklarieren einer Funktion mithilfe der Funktionstypen hilft der Codeanalyse für Treiber, der statischen Treiberüberprüfung (Static Driver Verifier , SDV) und anderen Überprüfungstools, Fehler zu finden, und es ist eine Anforderung zum Schreiben von Treibern für das Windows-Betriebssystem.Um beispielsweise eine MiniportCancelOidRequest-Funktion mit dem Namen "MyCancelOidRequest" zu definieren, verwenden Sie den MINIPORT_CANCEL_OID_REQUEST-Typ , wie in diesem Codebeispiel gezeigt:
MINIPORT_CANCEL_DIRECT_OID_REQUEST MyCancelOidRequest;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
VOID
MyCancelRequest(
NDIS_HANDLE MiniportAdapterContext,
PVOID RequestId
)
{...}
Der MINIPORT_CANCEL_OID_REQUEST Funktionstyp ist in der Headerdatei Ndis.h definiert. Um Fehler beim Ausführen der Codeanalysetools genauer zu identifizieren, fügen Sie der Funktionsdefinition die Use_decl_annotations Anmerkung hinzu. Die Use_decl_annotations Anmerkung stellt sicher, dass die Anmerkungen verwendet werden, die auf den MINIPORT_CANCEL_OID_REQUEST Funktionstyp in der Headerdatei angewendet werden. Weitere Informationen zu den Anforderungen für Funktionsdeklarationen finden Sie unter Deklarieren von Funktionen mithilfe von Funktionsrollentypen für NDIS-Treiber.
Informationen zu Use_decl_annotations finden Sie unter Verhalten von Funktionen mit Anmerkungen.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Unterstützt in NDIS 6.0 und höher. |
Zielplattform | Windows |
Kopfzeile | ndis.h (einschließlich Ndis.h) |
IRQL | <= DISPATCH_LEVEL |