Condividi tramite


PROTOCOL_CM_DEACTIVATE_VC_COMPLETE funzione di callback (ndis.h)

La funzione ProtocolCmDeactivateVcComplete è una funzione richiesta. ProtocolCmDeactivateVcComplete completa l'elaborazione di una richiesta avviata da call manager che il driver miniport sottostante (e NDIS) disattiva un vc per cui NdisCmDeactivateVc ha restituito in precedenza NDIS_STATUS_PENDING.

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

Sintassi

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE ProtocolCmDeactivateVcComplete;

void ProtocolCmDeactivateVcComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE CallMgrVcContext
)
{...}

Parametri

[in] Status

Specifica lo stato finale della disattivazione.

[in] CallMgrVcContext

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

Valore restituito

nessuno

Osservazioni

NDIS chiama in genere ProtocolCmDeactivateVcComplete nel contesto della chiusura di una chiamata per conto di un client orientato alla connessione. Il gestore chiamate in genere NdisCmDeactivateVc dalla funzione ProtocolCmCloseCall . Ogni volta che NdisCmDeactivateVc restituisce NDIS_STATUS_PENDING, NDIS chiama successivamente la funzione ProtocolCmDeactivateVcComplete .

Ovvero, quando il driver miniport orientato alla connessione sottostante ha disattivato il VC, NDIS chiama ProtocolCmDeactivateVcComplete. Lo stato finale della disattivazione viene trovato in Stato . I valori possibili per lo stato finale includono, ma non sono limitati a:

ProtocolCmDeactivateVcComplete esegue qualsiasi post-elaborazione necessaria per completare la disattivazione di una connessione virtuale, ad esempio l'impostazione dei flag nell'area dello stato per indicare che la connessione è inattiva o rilascia risorse allocate in modo dinamico usate mentre il VC è attivo.

Il completamento della disattivazione significa che tutti i parametri di chiamata per il vc usato per l'attivazione non sono più validi. Qualsiasi ulteriore uso del VC è vietato tranne riattivarlo con un nuovo set di parametri di chiamata.

I responsabili delle chiamate devono rilasciare tutte le risorse allocate per l'attivazione vc e il controllo restituito il più rapidamente possibile. Se il gestore chiamate ha restituito in precedenza NDIS_STATUS_PENDING dalla funzione ProtocolCmCloseCall e tutte le operazioni per chiudere la chiamata sono state completate, ProtocolCmDeactivateVcComplete dovrebbe ora chiamare NdisCmCloseCallComplete.

Esempi

Per definire una funzione ProtocolCmDeactivateVcComplete , è prima necessario specificare 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 ProtocolCmDeactivateVcComplete denominata "MyCmDeactivateVcComplete ", usare il tipo di PROTOCOL_CM_DEACTIVATE_VC_COMPLETE come illustrato in questo esempio di codice:

PROTOCOL_CM_DEACTIVATE_VC_COMPLETE MyCmDeactivateVcComplete;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyCmDeactivateVcComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  CallMgrVcContext
    )
  {...}

Il tipo di funzione PROTOCOL_CM_DEACTIVATE_VC_COMPLETE è 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 PROTOCOL_CM_DEACTIVATE_VC_COMPLETE 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 ProtocolCmDeactivateVcComplete (NDIS 5.1) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere ProtocolCmDeactivateVcComplete (NDIS 5.1) in Windows XP.
Piattaforma di destinazione Windows
Intestazione ndis.h (includere Ndis.h)
IRQL <= DISPATCH_LEVEL

Vedi anche

MiniportCoDeactivateVc

NdisCmCloseCallComplete

NdisCmDeactivateVc

ProtocolCmCloseCall