PROTOCOL_CM_MODIFY_QOS_CALL Rückruffunktion (ndis.h)
Die ProtocolCmModifyCallQoS-Funktion ist erforderlich. ProtocolCmModifyCallQoS wird von NDIS aufgerufen, wenn ein verbindungsorientierter Client fordert, dass die Aufrufparameter für eine vorhandene virtuelle Verbindung (VC) geändert werden. Wenn das zugrunde liegende Netzwerkmedium QoS nicht unterstützt, sollte ProtocolCmModifyQoS einfach NDIS_STATUS_NOT_SUPPORTED zurückgeben.
Syntax
PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;
NDIS_STATUS ProtocolCmModifyQosCall(
[in] NDIS_HANDLE CallMgrVcContext,
[in] PCO_CALL_PARAMETERS CallParameters
)
{...}
Parameter
[in] CallMgrVcContext
Gibt das Handle für einen vom Anruf-Manager zugewiesenen Kontextbereich an, in dem der Anruf-Manager seinen status pro VC beibehält. Der Aufruf-Manager hat dieses Handle für NDIS für seine ProtocolCoCreateVc-Funktion bereitgestellt.
[in] CallParameters
Zeiger auf eine CO_CALL_PARAMETERS-Struktur , die die neuen Aufrufparameter enthält, wie von einem verbindungsorientierten Client für die VC angegeben.
Rückgabewert
ProtocolCmModifyQoS gibt den status seiner Vorgänge als einen der folgenden Werte zurück:
Rückgabecode | Beschreibung |
---|---|
|
Gibt an, dass der Anruf-Manager die Parameter des Aufrufs mit dem Netzwerk erfolgreich in die Unter CallParameters angegebenen Aufrufparameter geändert hat. |
|
Gibt an, dass der Anruf-Manager die Anforderung zum asynchronen Ändern der Aufrufparameter abschließt. Wenn der Anruf-Manager alle Vorgänge abgeschlossen hat, die zum Ändern der Aufrufparameter erforderlich sind, muss er aufrufen. NdisCmModifyCallQoSComplete. |
|
Gibt an, dass der Aufruf-Manager die Aufrufparameter der VC nicht ändern konnte, da dynamisch zugeordnete Ressourcen nicht verfügbar waren. |
|
Gibt an, dass der Anruf-Manager die Aufrufparameter der VC nicht ändern konnte, da die unter CallParameters angegebenen Aufrufparameter ungültig oder ungültig waren. |
|
Gibt an, dass die Aufrufparameter aufgrund eines Fehlers im Netzwerk oder einer anderen verbindungsorientierten Netzwerkkomponente nicht auf die angegebenen Aufrufparameter festgelegt werden konnten. |
Hinweise
ProtocolCmModifyQoS kommuniziert mit Netzwerksteuerungsgeräten oder anderen medienspezifischen Agents, wie es für die Medien erforderlich ist, um die medienspezifischen Aufrufparameter für eine etablierte virtuelle Verbindung zu ändern. Wenn der Anruf-Manager für die Kommunikation mit Netzwerksteuerungs-Agents (d. h. einem Netzwerkschalter) erforderlich ist, sollte er eine virtuelle Verbindung mit den Netzwerksteuerungs-Agents verwenden, die er in seiner ProtocolBindAdapterEx-Funktion eingerichtet hat. Eigenständige Anrufmanager kommunizierten die Netzwerk-Agents, indem sie NdisCoSendNetBufferLists aufrufen. Miniport-Treiber mit integrierter Anrufverwaltungsunterstützung rufen nie NdisCoSendNetBufferLists auf. Stattdessen überträgt ein solcher Treiber die Daten einfach über das Netzwerk an den Zielnetzwerk-Agent.
Nach der Kommunikation mit dem Netzwerk und wenn die Änderungen erfolgreich waren, muss der Anruf-Manager NdisCmActivateVc mit den neuen Aufrufparametern aufrufen. Dadurch wird der NDIS und/oder der verbindungsorientierte Miniporttreiber benachrichtigt, dass sich die Aufrufparameter geändert haben, und dem Miniporttreiber die Möglichkeit gegeben, diese Parameter zu überprüfen.
Wenn entweder das Netzwerk die neuen Aufrufparameter nicht akzeptieren kann oder der zugrunde liegende Miniporttreiber die Parameter nicht akzeptieren kann, muss der Aufruf-Manager die virtuelle Verbindung in den Zustand wiederherstellen, der vor dem Versuch von Änderungen bestand, und NDIS_STATUS_FAILURE zurückgeben.
Beispiele
Um eine ProtocolCmModifyCallQoS-Funktion zu definieren, müssen Sie zunächst 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 ProtocolCmModifyCallQoS-Funktion mit dem Namen "MyCmModifyCallQoS" zu definieren, verwenden Sie den PROTOCOL_CM_MODIFY_QOS_CALL-Typ , wie in diesem Codebeispiel gezeigt:
PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;
Implementieren Sie dann Ihre Funktion wie folgt:
_Use_decl_annotations_
NDIS_STATUS
MyCmModifyCallQoS(
NDIS_HANDLE CallMgrVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
Der PROTOCOL_CM_MODIFY_QOS_CALL 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_CM_MODIFY_QOS_CALL 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 ProtocolCmModifyCallQoS (NDIS 5.1)) in Windows Vista. Unterstützt für NDIS 5.1-Treiber (siehe ProtocolCmModifyCallQoS (NDIS 5.1)) in Windows XP. |
Zielplattform | Windows |
Kopfzeile | ndis.h (einschließlich Ndis.h) |
IRQL | <= DISPATCH_LEVEL |
DDI-Complianceregeln | SpinLockBalanced(ndis), SpinLockDpr(ndis) |