Condividi tramite


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.

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

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
NDIS_STATUS_SUCCESS
Indica che il VC è stato attivato correttamente.
NDIS_STATUS_PENDING
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.
NDIS_STATUS_INVALID_DATA
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.
NDIS_STATUS_RESOURCES
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

Vedi anche

MiniportCoCreateVc

MiniportCoDeactivateVc

NdisMCoActivateVcComplete