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.
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 |