FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE-Funktion (ndis.h)
NDIS ruft die FilterSynchronousOidRequestComplete-Funktion eines Filtertreibers auf, nachdem eine synchrone OID-Anforderung von einem zugrunde liegenden Treiber abgeschlossen wurde.
Diese Funktion wird in NDIS 6.81 und höher unterstützt.
Syntax
void FILTER_SYNCHRONOUS_OID_REQUEST_COMPLETE(
[in] NDIS_HANDLE FilterModuleContext,
[in, out] NDIS_OID_REQUEST *OidRequest,
[in, out] NDIS_STATUS *Status,
[in] PVOID CallContext
);
Parameter
[in] FilterModuleContext
Ein Handle für den Kontextbereich für das Filtermodul, das das Ziel dieser Anforderung ist. Der Filtertreiber hat diesen Kontextbereich in der FilterAttach-Funktion erstellt und initialisiert.
[in, out] OidRequest
Ein Zeiger auf eine NDIS_OID_REQUEST-Struktur , die den abgeschlossenen Vorgang angibt.
[in, out] Status
Ein Zeiger auf den resultierenden status Code der abgeschlossenen Anforderung.
[in] CallContext
Ein Speicherslot im PVOID-Format, für den der Filtertreiber den Zustand zwischen den Handlern FilterSynchronousOidRequest und FilterSynchronousOidRequestComplete gemeinsam nutzen kann. Wenn der Filtertreiber einen FilterSynchronousOidRequest-Handler implementiert, enthält dieser Parameter den Kontextwert, den der FilterSynchronousOidRequest-Handler zurückgegeben hat. Wenn der Filtertreiber andernfalls keinen FilterSynchronousOidRequest-Handler implementiert, ist dieser Wert null.
Rückgabewert
Keine
Bemerkungen
FilterSynchronousOidRequestComplete ist eine optionale Funktion. Wenn ein Filtertreiber synchrone OID-Anforderungen, die vom Miniporttreiber abgeschlossen wurden, nicht beobachten oder ändern muss, sollte der Filtertreiber den Einstiegspunkt für diese Funktion auf NULL festlegen, wenn er NdisFRegisterFilterDriver aufruft.
NDIS ruft die FilterSynchronousOidRequestComplete-Funktion des Filtertreibers auf, um synchrone OID-Anforderungen zu verarbeiten, die von zugrunde liegenden Treibern abgeschlossen werden. Filtertreiber können einige Felder in der NDIS_OID_REQUEST-Struktur wie folgt lesen oder ändern:
Feld | Filtern des Zugriffs |
---|---|
Header | Schreibgeschützt |
RequestType | Lesen/Schreiben |
PortNumber | Lesen/Schreiben |
Timeout | Nicht auf zugreifen |
RequestId | Nicht auf zugreifen |
RequestHandle | Lesen/Schreiben |
DATA | Lesen/Schreiben |
NdisReserved | Nicht auf zugreifen |
MiniportReserved | Nicht auf zugreifen |
SourceReserved | Nicht auf zugreifen |
SupportedRevision | Lesen/Schreiben |
Reserviert1, Reserviert2 | Nicht auf zugreifen |
SwitchId | Lesen/Schreiben |
VPortId | Lesen/Schreiben |
Flags | Lesen/Schreiben |
Zusätzlich zum Ändern der NDIS_OID_REQUEST-Struktur können Filtertreiber den status Code lesen oder ändern, mit dem der Vorgang abgeschlossen wurde. Der Filtertreiber kann einen neuen Wert in den *Status-Parameter schreiben. Filtertreiber dürfen NDIS_STATUS_PENDING oder NDIS_STATUS_ALREADY_COMPLETE nicht in den *Status-Parameter schreiben.
Wenn der Filtertreiber auch einen FilterSynchronousOidRequest-Handler registriert, garantiert NDIS, dass der FilterSynchronousOidRequestComplete-Handler nur aufgerufen wird, wenn der FilterSynchronousOidRequest-Handler NDIS_STATUS_SUCCESS zurückgibt.
Es wird erwartet, dass Filtertreiber schnell von ihrem FilterSynchronousOidRequestComplete-Handler zurückkehren, ohne zu blockieren, zu warten oder zu schlafen. Synchrone OID-Anforderungen werden nur für Vorgänge mit geringer Latenz verwendet, und Filtertreiber sollten versuchen, sie innerhalb von mehreren Millisekunden fortzusetzen oder abzuschließen.
NDIS serialisiert keine synchronen OID-Anforderungen gegeneinander, für andere OID-Anforderungen oder für FilterPause. Es liegt in der Verantwortung des Filtertreibers, alle erforderlichen Synchronisierungen zu implementieren.
NDIS serialisiert synchrone OID-Anforderungen für FilterDetach: NDIS garantiert, dass nach dem Aufruf von FilterDetach keine synchronen OID-Anforderungen aktiv sind.
Filtertreiber dürfen NdisAllocateCloneOidRequest oder NdisCancelOidRequest nicht für eine synchrone OID-Anforderung aufrufen. Filtertreiber dürfen NdisFSynchronousOidRequest nicht für eine OID-Anforderung aufrufen, die über einen FilterSynchronousOidRequestComplete-Handler empfangen wird.
Anforderungen
Anforderung | Wert |
---|---|
Unterstützte Mindestversion (Client) | Windows 10, Version 1709 |
Zielplattform | Windows |
Kopfzeile | ndis.h (include Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
Weitere Informationen
Feedback
https://aka.ms/ContentUserFeedback.
Bald verfügbar: Im Laufe des Jahres 2024 werden wir GitHub-Issues stufenweise als Feedbackmechanismus für Inhalte abbauen und durch ein neues Feedbacksystem ersetzen. Weitere Informationen finden Sie unterFeedback senden und anzeigen für