MINIPORT_CO_ACTIVATE_VC funzione di callback (ndis.h)
La funzione MiniportCoActivateVc è necessaria per i miniporti orientati alla connessione. MiniportCoActivateVc viene chiamato da NDIS per indicare al driver miniport che viene attivata una connessione virtuale.
Sintassi
MINIPORT_CO_ACTIVATE_VC MiniportCoActivateVc;
NDIS_STATUS MiniportCoActivateVc(
[in] NDIS_HANDLE MiniportVcContext,
[in, out] PCO_CALL_PARAMETERS CallParameters
)
{...}
Parametri
[in] MiniportVcContext
Specifica l'handle in un'area di contesto allocata dal driver miniport in cui il driver miniport mantiene lo stato per VC. Il driver miniport ha fornito questo handle a NDIS dalla sua funzione MiniportCoCreateVc .
[in, out] CallParameters
Specifica i parametri di chiamata, come specificato dal gestore chiamate, da stabilire per questo VC. Nell'output, il driver miniport restituisce parametri di chiamata modificati se determinati flag vengono impostati nella struttura CO_CALL_PARAMETERS .
Valore restituito
Codice restituito | Descrizione |
---|---|
|
Indica che il VC è stato attivato correttamente. |
|
Indica che il driver miniport completerà la richiesta per attivare un vc in modo asincrono. Al termine delle operazioni, il driver miniport deve chiamare NdisMCoActivateVcComplete. |
|
Indica che i parametri di chiamata specificati in CallParameters non sono validi o non validi per il tipo di supporto supportato da questo driver miniport. |
|
Indica che il driver miniport non è riuscito ad attivare il VC perché non è stato possibile allocare tutte le risorse necessarie che il driver miniport deve mantenere le informazioni sullo stato relative al VC attivo. |
Commenti
Il driver miniport deve convalidare i parametri di chiamata per questo VC, come specificato in CallParameters, per verificare che l'adattatore possa supportare la chiamata richiesta. Se i parametri di chiamata richiesti non possono essere soddisfatti, il driver miniport deve non riuscire la richiesta con NDIS_STATUS_INVALID_DATA.
MiniportCoActivateVc può essere chiamato molte volte per un singolo VC per modificare i parametri di chiamata per una chiamata già attiva. A ogni chiamata, il driver miniport deve convalidare i parametri ed eseguire qualsiasi elaborazione come richiesto dalla scheda per soddisfare la richiesta. Tuttavia, se non è in grado di impostare i parametri di chiamata specificati, MiniportCoActivateVc deve lasciare il vc in uno stato utilizzabile, perché il client orientato alla connessione o un gestore chiamate può continuare a inviare o ricevere dati usando i parametri di chiamata meno recenti.
Se le ROUND_UP_FLOW o i flag di ROUND_DOWN_FLOW vengono impostati nella struttura dei parametri di chiamata in CallParameters-MediaParameters-Flags>>, il driver miniport è stato richiesto di restituire la frequenza effettiva del flusso del VC dopo che la frequenza di flusso è stata arrotondata in base al flag appropriato impostato. Se il driver miniport modifica uno dei parametri di chiamata perché questi flag sono stati impostati, deve restituire i parametri di chiamata effettivi in uso per VC in CallParameters.
Se i parametri di chiamata sono accettabili, MiniportCoActivateVc comunica con la relativa scheda in base alle esigenze per preparare l'adattatore per ricevere o trasmettere dati nella connessione virtuale (in altre parole, la programmazione riceve buffer).
Esempi
Per definire una funzione MiniportCoActivateVc , è 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 usando i tipi di funzione consente l'analisi del codice per i driver, il verifica driver statico (SDV) e altri strumenti di verifica trovano errori ed è un requisito per la scrittura di driver per il sistema operativo Windows.Ad esempio, per definire una funzione MiniportCoActivateVc denominata "MyCoActivateVc ", usare il tipo di MINIPORT_CO_ACTIVATE_VC , come illustrato nell'esempio di codice seguente:
MINIPORT_CO_ACTIVATE_VC MyCoActivateVc;
Implementare quindi la funzione come indicato di seguito:
_Use_decl_annotations_
NDIS_STATUS
MyCoActivateVc(
NDIS_HANDLE MiniportVcContext,
PCO_CALL_PARAMETERS CallParameters
)
{...}
Il tipo di funzione MINIPORT_CO_ACTIVATE_VC è definito nel file di intestazione Ndis.h. Per identificare in modo più accurato gli errori durante l'esecuzione degli 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 usate le annotazioni applicate al tipo di funzione MINIPORT_CO_ACTIVATE_VC nel file di intestazione. Per altre informazioni sui requisiti per le dichiarazioni di funzione, vedere Dichiarazione di funzioni tramite tipi di ruolo per i driver NDIS.
Per informazioni su 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 MiniportCoActivateVc (NDIS 5.1) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere MiniportCoActivateVc (NDIS 5.1) in Windows XP. |
Piattaforma di destinazione | Windows |
Intestazione | ndis.h (includere Ndis.h) |
IRQL | <= DISPATCH_LEVEL |