PROTOCOL_CL_CLOSE_CALL_COMPLETE funzione di callback (ndis.h)

La funzione ProtocolClCloseCallComplete viene usata dai client NDIS orientati alla connessione. Tutti i client NDIS orientati alla connessione devono avere funzioni ProtocolClCloseCallComplete per completare le operazioni asincrone avviate con

NdisClCloseCall.

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

Sintassi

PROTOCOL_CL_CLOSE_CALL_COMPLETE ProtocolClCloseCallComplete;

void ProtocolClCloseCallComplete(
  [in]           NDIS_STATUS Status,
  [in]           NDIS_HANDLE ProtocolVcContext,
  [in, optional] NDIS_HANDLE ProtocolPartyContext
)
{...}

Parametri

[in] Status

Specifica lo stato finale della richiesta del client per chiudere questa chiamata, che può essere uno dei seguenti:

NDIS_STATUS_SUCCESS

Il gestore chiamate ha chiuso correttamente la chiamata esistente nel vc specificato e disattivata il VC.

NDIS_STATUS_XXX

Il gestore chiamate non ha superato la richiesta di chiudere la chiamata per un motivo determinato da CM e NDIS ha propagato lo stato restituito dalla funzione ProtocolCmCloseCall al client.

[in] ProtocolVcContext

Specifica l'handle nell'area di contesto per VC del client Questo è l'handle passato originariamente a NDIS con NdisCoCreateVc o restituito a NDIS dalla relativa funzione ProtocolCoCreateVc .

[in, optional] ProtocolPartyContext

Specifica l'handle per l'area di contesto per parti del client per l'ultima parte rimanente nel vc creato dal client che rappresenta una connessione a più punti. In caso contrario, questo parametro è NULL.

Valore restituito

nessuno

Osservazioni

Se il vc specificato è stato creato dal client e stato è NDIS_STATUS_SUCCESS, il client può ora eseguire una delle operazioni seguenti:

  • Rimuovere il vc con NdisCoDeleteVc e prepararsi per riutilizzare le aree di contesto allocate.
  • Reinizializzare l'area di contesto per VC e riutilizzarne il vc per creare un'altra connessione con NdisClMakeCall.
Se il vc è stato creato dal gestore chiamate, il client deve considerare l'errore NdisVcHandle non valido quando viene chiamato ProtocolClseCallComplete . Il client non deve effettuare ulteriori chiamate NdisCl/CoXxx con questo oggetto NdisVcHandle . Dopo Il controllo ProtocolClCloseCallComplete restituisce il controllo, il gestore chiamate può eliminarlo, causando così una chiamata alla funzione ProtocolCoDeleteVc del client. Il gestore chiamate può anche inviare un'altra chiamata in ingresso nel VC creato, causando così una chiamata al client Funzione ProtocolClIncomingCall .

Esempi

Per definire una funzione ProtocolClCloseCallComplete , è 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 ProtocolClCloseCallComplete denominata "MyClCloseCallComplete ", usare il tipo PROTOCOL_CL_CLOSE_CALL_COMPLETE come illustrato nell'esempio di codice seguente:

PROTOCOL_CL_CLOSE_CALL_COMPLETE MyClCloseCallComplete;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyClCloseCallComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolVcContext,
    NDIS_HANDLE  ProtocolPartyContext
    )
  {...}

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

Vedi anche

NdisClCloseCall

NdisClMakeCall

NdisCmCloseCallComplete

NdisCoDeleteVc

NdisMCmCloseCallComplete

ProtocolClIncomingCall

ProtocolCmCloseCall

ProtocolCoDeleteVc