CoNDIS MCM-OID-Anforderungen
Wie andere CoNDIS-Anruf-Manager können miniport Call Manager (MCMs) die Betriebsparameter von CoNDIS-Clienttreibern abfragen oder festlegen. CoNDIS-Clienttreiber können die Anruf-Manager-Parameter oder die Miniporttreiberparameter eines MCM abfragen oder festlegen.
Um eine OID-Anforderung an einen CoNDIS-Clienttreiber zu erstellen, ruft ein MCM die NdisMCmOidRequest-Funktion auf.
Die folgende Abbildung veranschaulicht eine OID-Anforderung, die von einem MCM stammt.
Nachdem ein MCM-Treiber die NdisMCmOidRequest-Funktion aufgerufen hat, ruft NDIS die ProtocolCoOidRequest-Funktion des Clienttreibers auf.
Um synchron abzuschließen, gibt NdisMCmOidRequest NDIS_STATUS_SUCCESS oder einen Fehler status zurück. Um asynchron abzuschließen, gibt NdisMCmOidRequest NDIS_STATUS_PENDING zurück.
Wenn NdisMCmOidRequest NDIS_STATUS_PENDING zurückgibt, ruft NDIS die ProtocolCoOidRequestComplete-Funktion des MCM auf, nachdem die Clienttreiber die OID-Anforderung durch Aufrufen der NdisCoOidRequestComplete-Funktion abgeschlossen haben. In diesem Fall übergibt NDIS die Ergebnisse der Anforderung am OidRequest-Parameter von ProtocolCoOidRequestComplete. NDIS übergibt die letzte status der Anforderung am Statusparameter von ProtocolCoOidRequestComplete.
Wenn NdisMCmOidRequest NDIS_STATUS_SUCCESS zurückgibt, werden die Ergebnisse einer Abfrageanforderung in der NDIS_OID_REQUEST-Struktur am OidRequest-Parameter zurückgegeben. In diesem Fall ruft NDIS die ProtocolCoOidRequestComplete-Funktion des MCM nicht auf.
CoNDIS-Clienttreiber können die Betriebsparameter des Anruf-Managers oder die Miniport-Betriebsparameter von MCMs abfragen oder festlegen. Um eine OID-Anforderung für MCM-Aufruf-Manager-Parameter zu erstellen, ruft ein Client die NdisCoOidRequest-Funktion auf und stellt ein gültiges Adressfamilienhandle -Handle (AF) am NdisAfHandle-Parameter bereit. Um eine OID-Anforderung für MCM-Miniportparameter zu erstellen, ruft ein Client die NdisCoOidRequest-Funktion auf und legt das AF-Handle auf NULL fest.
Nachdem ein Client die NdisCoOidRequest-Funktion aufgerufen hat, ruft NDIS entweder die MiniportCoOidRequest-Funktion oder die ProtocolCoOidRequest-Funktion des MCM-Treibers auf.
Die folgende Abbildung veranschaulicht eine OID-Anforderung für die Miniportparameter des MCM.
Die folgende Abbildung veranschaulicht eine OID-Anforderung für die Anruf-Manager-Parameter des MCM.
Um synchron abzuschließen, gibt NdisCoOidRequest NDIS_STATUS_SUCCESS oder einen Fehler status zurück. Um asynchron abzuschließen, gibt ProtocolCoOidRequest oder MiniportCoOidRequest NDIS_STATUS_PENDING zurück.
Wenn ProtocolCoOidRequest oder MininportCoOidRequest NDIS_STATUS_PENDING zurückgibt, ruft NDIS die ProtocolCoOidRequestComplete-Funktion des Clients auf, nachdem der MCM die OID-Anforderung durch Aufrufen der NdisMCoOidRequestComplete - oder NdisMCmOidRequestComplete-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 Statusparameter von ProtocolCoOidRequestComplete.
Wenn NdisCoOidRequest NDIS_STATUS_SUCCESS zurückgibt, werden die Ergebnisse einer Abfrageanforderung in der NDIS_OID_REQUEST-Struktur am OidRequest-Parameter zurückgegeben. In diesem Fall ruft NDIS die ProtocolCoOidRequestComplete-Funktion des Clients nicht auf.