OID-Anforderungen des CoNDIS-Protokolltreibers
CoNDIS-Protokolltreiber, entweder Clients oder Anruf-Manager, können die Betriebsparameter von Miniporttreibern und anderen Protokolltreibern abfragen oder festlegen. CoNDIS-Protokolltreiber können auch Informationen in Miniport-Anruf-Managern (MCMs) abfragen oder festlegen. Weitere Informationen zu OID-Anforderungen und MCMs finden Sie unter CoNDIS MCM-OID-Anforderungen.
Um eine OID-Anforderung an einen zugrunde liegenden Treiber zu erstellen, ruft ein Protokolltreiber die NdisCoOidRequest-Funktion auf und legt das Adressfamilienhandle -Handle (AF) am NdisAfHandle-Parameter auf NULL fest. Um eine OID-Anforderung an einen anderen CoNDIS-Protokolltreiber zu erstellen, ruft ein Protokolltreiber NdisCoOidRequest auf und stellt ein gültiges AF-Handle bereit.
Nachdem ein Protokolltreiber die NdisCoOidRequest-Funktion aufgerufen hat, ruft NDIS die OID-Anforderungsfunktion des anderen Treibers (einem zugrunde liegenden Treiber oder einem anderen CoNDIS-Protokolltreiber) auf. Für Miniporttreiber ruft NDIS die MiniportCoOidRequest-Funktion auf. Für Protokolltreiber ruft NDIS die ProtocolCoOidRequest-Funktion auf.
Die folgende Abbildung veranschaulicht eine OID-Anforderung, die an einen Miniporttreiber weitergeleitet wird.
Die folgende Abbildung veranschaulicht eine OID-Anforderung, die an einen Protokolltreiber weitergeleitet wird.
Um synchron abzuschließen, gibt NdisCoOidRequest NDIS_STATUS_SUCCESS oder einen Fehler status zurück. Zum asynchronen Abschluss gibt NdisCoOidRequest NDIS_STATUS_PENDING zurück.
Wenn NdisCoOidRequest NDIS_STATUS_PENDING zurückgibt, ruft NDIS die ProtocolCoOidRequestComplete-Funktion auf, nachdem der andere Treiber die OID-Anforderung durch Aufrufen der NdisMCoOidRequestComplete-Funktion oder der NdisCoOidRequestComplete-Funktion abgeschlossen hat . In diesem Fall übergibt NDIS die Ergebnisse der Anforderung am OidRequest-Parameter von ProtocolCoOidRequestComplete. NDIS übergibt die letzte status der Anforderung am Status-Parameter von ProtocolCoOidRequestComplete.
Wenn NdisCoOidRequest NDIS_STATUS_SUCCESS zurückgibt, werden die Ergebnisse einer Abfrageanforderung in der NDIS_OID_REQUEST-Struktur an den OidRequest-Parameterpunkten zurückgegeben. In diesem Fall ruft NDIS die ProtocolCoOidRequestComplete-Funktion nicht auf.
Wenn ein zugrunde liegender Treiber die OID-Anforderung einer nachfolgenden status-Angabe zuordnen soll, sollte der Protokolltreiber die Member RequestId und RequestHandle in der NDIS_OID_REQUEST-Struktur festlegen. Wenn der zugrunde liegende Treiber eine status Angabe macht, legt der Treiber den RequestId-Member in der NDIS_STATUS_INDICATION-Struktur auf den Wert aus dem RequestId-Member der NDIS_OID_REQUEST-Struktur und das DestinationHandle-Element in der NDIS_STATUS_INDICATION-Struktur auf den Wert aus dem RequestHandle-Member der NDIS_OID_REQUEST-Struktur fest.
Ein Treiber kann NdisCoOidRequest aufrufen, wenn sich eine Bindung im Zustand "Neustarten", "Wird", "Angehalten" oder "Angehalten" befindet.