Freigeben über


PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE Rückruffunktion (ndis.h)

Die ProtocolClModifyCallQoSComplete-Funktion wird von verbindungsorientierten NDIS-Clients verwendet, die die Dienstqualität für eine Verbindung dynamisch ändern können. Solche Clients müssen über ProtocolClModifyCallQoSComplete-Funktionen verfügen, um die asynchronen Vorgänge abzuschließen, die sie mit NdisClModifyCallQoS initiieren. Andernfalls kann die registrierte ProtocolClModifyCallQoSComplete-Funktion eines solchen Protokolltreibers einfach die Steuerung zurückgeben.

Hinweis Sie müssen die Funktion mit dem PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE-Typ deklarieren. Weitere Informationen finden Sie im folgenden Abschnitt Beispiele.
 

Syntax

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

void ProtocolClModifyCallQosComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parameter

[in] Status

Gibt die endgültige status der asynchronen Anforderung des Clients an, um die Aufrufparameter für diese VC zu ändern, wie folgt:

NDIS_STATUS_SUCCESS

Die QoS wurde wie vom Client angefordert geändert.

NDIS_STATUS_RESOURCES

NDIS oder der Anruf-Manager konnten die QoS nicht ändern, da einer von ihnen nicht genügend Ressourcen dynamisch zuordnen konnte.

NDIS_STATUS_INVALID_DATA

Die Aufrufparameter, die der Client für NdisClModifyCallQoS bereitgestellt hat , waren ungültig.

NDIS_STATUS_FAILURE

Der Anruf-Manager konnte die QoS aufgrund eines Fehlers im Netzwerk oder in einer anderen verbindungsorientierten Netzwerkkomponente nicht ändern.

NDIS_STATUS_XXX

Der Aufruf-Manager konnte die QoS nicht ändern, und NDIS hat den cm-bestimmten Fehler status an den Client weitergegeben.

[in] ProtocolVcContext

Gibt das Handle für den Pro-VC-Kontextbereich des Clients an, den der Client ursprünglich für NDIS bereitgestellt hat, als er NdisCoCreateVc aufgerufen hat, um die VC für seine ausgehende Anrufanforderung einzurichten, oder über seine ProtocolCoCreateVc-Funktion , wenn der Client einen eingehenden Aufruf auf dieser VC akzeptiert hat.

[in] CallParameters

Zeiger auf eine gepufferte CO_CALL_PARAMETERS Struktur, die die vom Client angegebene QoS-Änderung enthält, die sie angefordert hat, oder möglicherweise die ursprüngliche QoS für diese VC, die beim Aktivieren der Verbindung eingerichtet wurde, die vom Anruf-Manager wiederhergestellt wurde.

Rückgabewert

Keine

Bemerkungen

Ein Aufruf von ProtocolClModifyCallQoSComplete gibt an, dass der Anruf-Manager die Verarbeitung einer vom Client initiierten Anforderung abgeschlossen hat, um die Dienstqualität für eine aktive VC zu ändern. Wenn das zugrunde liegende Netzwerkmedium beispielsweise dynamische QoS-Änderungen unterstützt, kann ein Client jederzeit Änderungen an einer aktiven VC anfordern.

Wenn der Aufruf von NdisClModifyCallQoS durch den Client erfolgreich ist, kann ProtocolClModifyCallQoSComplete die QoS-Änderung akzeptieren, indem einfach die Steuerung zurückgegeben wird. Andernfalls kann ProtocolClModifyCallQoSComplete weitere Verhandlungen mit dem Anruf-Manager führen, solange der Entwickler des Clients die Anzahl möglicher Neuverhandlungen begrenzt. Alternativ kann ProtocolClModifyCallQoSComplete den Anruf mit NdisClCloseCall einfach abreißen, wenn der Anruf-Manager eine Anforderung zum Ändern der QoS ablehnt und die zuvor etablierte QoS für den Client inakzeptabel geworden ist.

Beispiele

Um eine ProtocolClModifyCallQoSComplete-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 ProtocolClModifyCallQoSComplete-Funktion mit dem Namen "MyClModifyCallQoSComplete" zu definieren, verwenden Sie den typ PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE , wie in diesem Codebeispiel gezeigt:

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

Implementieren Sie dann Ihre Funktion wie folgt:

_Use_decl_annotations_
VOID
 MyClModifyCallQoSComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Der PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 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 PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE 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 für NDIS 6.0- und NDIS 5.1-Treiber (siehe ProtocolClModifyCallQoSComplete (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolClModifyCallQoSComplete (NDIS 5.1)) in Windows XP.
Zielplattform Windows
Kopfzeile ndis.h (einschließlich Ndis.h)
IRQL <= DISPATCH_LEVEL

Weitere Informationen

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc