Condividi tramite


PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE funzione di callback (ndis.h)

La funzione ProtocolClModifyCallQoSComplete viene utilizzata dai client NDIS orientati alla connessione che possono modificare la qualità del servizio in una connessione in modo dinamico. Tali client devono avere funzioni ProtocolClModifyCallQoSComplete per completare le operazioni asincrone avviate con NdisClModifyCallQoS. In caso contrario, la funzione ProtocolClModifyCallQoSComplete registrata del driver di protocollo può semplicemente restituire il controllo.

Nota È necessario dichiarare la funzione usando il tipo di PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE . Per altre informazioni, vedere la sezione Esempi seguente.
 

Sintassi

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE ProtocolClModifyCallQosComplete;

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

Parametri

[in] Status

Specifica lo stato finale della richiesta asincrona del client per modificare i parametri di chiamata per questo vc come uno dei seguenti:

NDIS_STATUS_SUCCESS

QoS è stato modificato come richiesto dal client.

NDIS_STATUS_RESOURCES

NDIS o il gestore chiamate non è riuscito a modificare il QoS perché uno di essi non è riuscito ad allocare risorse sufficienti in modo dinamico.

NDIS_STATUS_INVALID_DATA

I parametri di chiamata forniti dal client a NdisClModifyCallQoS non sono validi.

NDIS_STATUS_FAILURE

Il gestore chiamate non è riuscito a modificare il QoS a causa di un errore nella rete o in un altro componente di rete orientato alla connessione.

NDIS_STATUS_XXX

Il gestore chiamate non è riuscito a modificare il QoS e NDIS ha propagato lo stato di errore determinato da CM al client.

[in] ProtocolVcContext

Specifica l'handle per l'area di contesto per VC del client, che il client ha originariamente fornito a NDIS quando ha chiamato NdisCoCreateVc per configurare vc per la richiesta di chiamata in uscita o dalla relativa funzione ProtocolCoCreateVc se il client ha accettato una chiamata in ingresso in questo vc.

[in] CallParameters

Puntatore a una struttura di CO_CALL_PARAMETERS memorizzata nel buffer contenente il QoS specificato dal client, modificarla o, possibilmente, il QoS originale per questo vc stabilito quando è stata attivata la connessione, che il gestore chiamate ha ripristinato.

Valore restituito

nessuno

Osservazioni

Una chiamata a ProtocolClModifyCallQoSComplete indica che il gestore chiamate ha completato l'elaborazione di una richiesta avviata dal client per modificare la qualità del servizio in un vc attivo. Ad esempio, se il supporto di rete sottostante supporta modifiche QoS dinamiche, un client può richiedere modifiche in qualsiasi momento in un vc attivo.

Se la chiamata del client a NdisClModifyCallQoS ha esito positivo, ProtocolClModifyCallQoSComplete può accettare la modifica QoS semplicemente restituendo il controllo . In caso contrario, ProtocolClModifyCallQoSComplete può impegnarsi in un'ulteriore negoziazione con il responsabile delle chiamate, purché lo sviluppatore del client inserisca un limite ragionevole sul numero di possibili rinegoziazioni. In alternativa, ProtocolClModifyCallQoSComplete può semplicemente rimuovere la chiamata con NdisClCloseCall ogni volta che il gestore chiamate rifiuta una richiesta di modifica del QoS e il QoS stabilito in precedenza è diventato inaccettabile per il client.

Esempi

Per definire una funzione ProtocolClModifyCallQoSComplete , è innanzitutto necessario fornire una dichiarazione di funzione che identifica il tipo di funzione che si sta definendo. Windows fornisce un set di tipi di funzione per i driver. La dichiarazione di una funzione con i tipi di funzione consente di eseguire l'analisi del codice per i driver, l'SDV ( Static Driver Verifier ) e altri strumenti di verifica rilevano gli errori ed è un requisito per la scrittura dei driver per il sistema operativo Windows.

Ad esempio, per definire una funzione ProtocolClModifyCallQoSComplete denominata "MyClModifyCallQoSComplete", usare il tipo PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE , come illustrato in questo esempio di codice:

PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE MyClModifyCallQoSComplete;

Implementare quindi la funzione come segue:

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

Il tipo di funzione PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori quando si eseguono gli strumenti di analisi del codice, assicurarsi di aggiungere l'annotazione Use_decl_annotations alla definizione della funzione. L'annotazione Use_decl_annotations garantisce che vengano utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_CL_MODIFY_CALL_QOS_COMPLETE nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo di funzione per i driver NDIS.

Per informazioni sulle Use_decl_annotations, vedere Annotazione del comportamento della funzione.

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere ProtocolClModifyCallQoSComplete (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolClModifyCallQoSComplete (NDIS 5.1)) in Windows XP.
Piattaforma di destinazione Windows
Intestazione ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

CO_CALL_PARAMETERS

NdisClCloseCall

NdisClModifyCallQoS

NdisCmModifyCallQoSComplete

NdisMCmModifyCallQoSComplete

ProtocolCmModifyCallQoS

ProtocolCoCreateVc