PROTOCOL_CM_MODIFY_QOS_CALL funzione di callback (ndis.h)

La funzione ProtocolCmModifyCallQoS è obbligatoria. ProtocolCmModifyCallQoS viene chiamato da NDIS quando un client orientato alla connessione richiede che i parametri di chiamata vengano modificati per una connessione virtuale esistente. Se il supporto di rete sottostante non supporta QoS, ProtocolCmModifyQoS deve semplicemente restituire NDIS_STATUS_NOT_SUPPORTED.

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

Sintassi

PROTOCOL_CM_MODIFY_QOS_CALL ProtocolCmModifyQosCall;

NDIS_STATUS ProtocolCmModifyQosCall(
  [in] NDIS_HANDLE CallMgrVcContext,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parametri

[in] CallMgrVcContext

Specifica l'handle di un'area di contesto allocata dal gestore chiamate in cui il gestore chiamate mantiene lo stato per ogni vc. Il gestore chiamate ha fornito questo handle a NDIS per la relativa funzione ProtocolCoCreateVc .

[in] CallParameters

Puntatore a una struttura CO_CALL_PARAMETERS che contiene i nuovi parametri di chiamata, come specificato da un client orientato alla connessione, per il vc.

Valore restituito

ProtocolCmModifyQoS restituisce lo stato delle operazioni come uno dei valori seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Indica che il gestore chiamate ha modificato correttamente i parametri della chiamata con la rete ai parametri di chiamata specificati in CallParameters .
NDIS_STATUS_PENDING
Indica che il gestore chiamate completerà la richiesta per modificare i parametri di chiamata in modo asincrono. Quando il gestore chiamate ha completato tutte le operazioni necessarie per modificare i parametri di chiamata, deve chiamare NdisCmModifyCallQoSComplete.
NDIS_STATUS_RESOURCES
Indica che il gestore chiamate non è riuscito a modificare i parametri di chiamata del vc perché le risorse allocate dinamicamente non erano disponibili.
NDIS_STATUS_INVALID_DATA
Indica che il gestore chiamate non è riuscito a modificare i parametri di chiamata del vc perché i parametri di chiamata forniti in CallParameters non sono validi o non validi.
NDIS_STATUS_FAILURE
Indica che i parametri di chiamata non possono essere impostati sui parametri di chiamata forniti a causa di un errore nella rete o in un altro componente di rete orientato alla connessione.

Commenti

ProtocolCmModifyQoS comunica con i dispositivi di controllo di rete o altri agenti specifici del supporto, come richiesto dal supporto, per modificare i parametri di chiamata specifici del supporto per una connessione virtuale stabilita. Se il gestore chiamate è necessario per comunicare con gli agenti di controllo di rete (in altre parole, un commutatore di rete) deve usare una connessione virtuale agli agenti di controllo di rete stabiliti nella relativa funzione ProtocolBindAdapterEx . I responsabili chiamate autonomi hanno comunicato agli agenti di rete chiamando NdisCoSendNetBufferLists. I driver Miniport con supporto integrato per la gestione delle chiamate non chiamano mai NdisCoSendNetBufferLists. Un driver di questo tipo trasferisce invece semplicemente i dati in rete all'agente di rete di destinazione.

Dopo aver comunicato con la rete e se le modifiche hanno avuto esito positivo, il gestore chiamate deve quindi chiamare NdisCmActivateVc con i nuovi parametri di chiamata. Questo notifica a NDIS e/o al driver miniport orientato alla connessione che i parametri di chiamata sono stati modificati e fornisce al driver miniport la possibilità di convalidare tali parametri.

Se la rete non può accettare i nuovi parametri di chiamata o il driver miniport sottostante non può accettare i parametri, il gestore chiamate deve ripristinare la connessione virtuale allo stato esistente prima che siano state tentate modifiche e restituire NDIS_STATUS_FAILURE.

Esempi

Per definire una funzione ProtocolCmModifyCallQoS , è prima 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 ProtocolCmModifyCallQoS denominata "MyCmModifyCallQoS", usare il tipo PROTOCOL_CM_MODIFY_QOS_CALL , come illustrato in questo esempio di codice:

PROTOCOL_CM_MODIFY_QOS_CALL MyCmModifyCallQoS;

Implementare quindi la funzione come segue:

_Use_decl_annotations_
NDIS_STATUS
 MyCmModifyCallQoS(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

Il tipo di funzione PROTOCOL_CM_MODIFY_QOS_CALL è 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 assicura che vengano utilizzate le annotazioni applicate al tipo di funzione PROTOCOL_CM_MODIFY_QOS_CALL 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 ProtocolCmModifyCallQoS (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolCmModifyCallQoS (NDIS 5.1)) in Windows XP.
Piattaforma di destinazione Windows
Intestazione ndis.h (include Ndis.h)
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI SpinLockBalanced(ndis), SpinLockDpr(ndis)

Vedi anche

NdisCmActivateVc

NdisCmModifyCallQoSComplete

NdisCoSendNetBufferLists

ProtocolCoCreateVc