Udostępnij za pośrednictwem


Client-Initiated żądanie zmiany parametrów wywołania

Klient żąda zmiany jakości usługi (QoS) w aktywnym połączeniu wirtualnym (VC) z NdisClModifyCallQoS.

Na poniższej ilustracji przedstawiono klienta menedżera połączeń żądającego zmiany jakości usługi.

Diagram przedstawiający klienta menedżera połączeń żądającego zmiany QoS na aktywnym VC.

Na poniższej ilustracji przedstawiono klienta sterownika MCM żądającego zmiany jakości usługi.

Diagram ilustrujący klienta sterownika MCM, żądającego zmiany QoS na aktywnym VC.

W wywołaniu NdisClModifyCallQoSklient przekazuje:

  • Parametr NdisVcHandle identyfikujący VC.

  • Wskaźnik do struktury CO_CALL_PARAMETERS zawierającej parametry wywołania, których żąda klient.

Okoliczności, w których klient może zażądać zmiany QoS, są określane przez protokół sygnalizacyjny.

Wywołanie NdisClModifyCallQoS powoduje, że NDIS wywołuje funkcję ProtocolCmModifyCallQoSsterownika menedżera wywołań lub MCM, która używa NdisVcHandle oraz zbuforowanej struktury CO_CALL_PARAMETERS, które klient przekazuje do NdisClModifyCallQoS. ProtocolCmModifyQoS komunikuje się z urządzeniami sterowania siecią lub innymi agentami specyficznymi dla nośnika, zgodnie z wymaganiami nośnika, aby zmodyfikować medialne parametry wywołania dla ustanowionego połączenia wirtualnego.

Po nawiązaniu komunikacji z siecią i ustaleniu, że zmiany zakończyły się pomyślnie, menedżer wywołań musi wywołać NdisCmActivateVc(a sterownik MCM musi wywołać NdisMCmActivateVc) w celu aktywowania określonego vc z nowymi parametrami wywołania.

Jeśli sieć nie akceptuje nowych parametrów wywołania lub jeśli podstawowy sterownik miniportu nie może zaakceptować parametrów, menedżer wywołań lub sterownik MCM musi przywrócić vc do stanu, który istniał przed próbą modyfikacji, i zwrócić NDIS_STATUS_FAILURE.

Aby wskazać stan żądania klienta dotyczącego zmiany QoS, menedżer wywołań wywołuje NdisCmModifyCallQoSComplete, a sterownik MCM wywołuje NdisMCmModifyCallQoSComplete. W tym wywołaniu menedżer połączeń lub sterownik MCM przekazuje:

  • NDIS_STATUS wskazujący stan żądania.

  • NdisVcHandle identyfikujący VC.

  • Wskaźnik do struktury CO_CALL_PARAMETERS zawierającej parametry wywołania dla VC.

Jeśli jest to dozwolone przez protokół sygnalizacyjny, menedżer wywołań lub sterownik MCM może przekazać zmodyfikowane parametry wywołania z powrotem do klienta. Te modyfikacje mogą być produktem negocjacji z siecią lub mogą być dostarczane przez menedżera połączeń lub sam sterownik MCM. Menedżer wywołań lub sterownik MCM powinien wskazywać, że parametry wywołania zostały zmodyfikowane przez ustawienie flagi CALL_PARAMETERS_CHANGED w strukturze CO_CALL_PARAMETERS.

Wywołanie polecenia Ndis(M)CmModifyCallQoSComplete powoduje, że NDIS wywołuje funkcję protokołu klienta ProtocolClModifyCallQoSComplete. Usługa NDIS przekazuje następujące dane do ProtocolClModifyCallQoSComplete:

  • Status NDIS, który wskazuje stan żądania klienta dotyczącego zmiany QoS.

  • ProtocolVcContext uchwyt, który identyfikuje VC.

  • Wskaźnik do struktury CO_CALL_PARAMETERS zawierającej parametry wywołania przekazywane przez menedżera wywołań lub sterownik MCM do Ndis(M)CmModifyCallQoSComplete.

Jeśli flaga CALL_PARAMETERS_CHANGED jest ustawiona w strukturze CO_CALL_PARAMETERS, klient musi sprawdzić zwrócone parametry wywołania i określić, czy modyfikacje są dopuszczalne. Jeśli wywołanie klienta do NdisClModifyCallQoS powiedzie się, ProtocolClModifyCallQoSComplete może zaakceptować zmianę QoS, po prostu zwracając kontrolę. W przeciwnym razie ProtocolClModifyCallQoSComplete może zaangażować się w dalsze negocjacje z menedżerem połączeń, jeśli jest to dozwolone przez protokół sygnalizacyjny i tak długo, jak deweloper klienta nakłada pewne uzasadnione ograniczenie liczby możliwych renegocjacji. Alternatywnie, ProtocolClModifyCallQoSComplete może po prostu zakończyć połączenie za pomocą NdisClCloseCall(zobacz Client-Initiated Żądanie zamknięcia połączenia) za każdym razem, gdy menedżer połączeń odrzuca żądanie zmiany QoS, a wcześniej ustanowione QoS stało się dla klienta niedopuszczalne.