Funzione NdisCmMakeCallComplete (ndis.h)

NdisCmMakeCallComplete restituisce lo stato finale della richiesta di un client, per il quale il gestore chiamate ha restituito in precedenza NDIS_STATUS_PENDING, per effettuare una chiamata in uscita.

Sintassi

void NdisCmMakeCallComplete(
  [in]           NDIS_STATUS         Status,
  [in]           NDIS_HANDLE         NdisVcHandle,
  [in, optional] NDIS_HANDLE         NdisPartyHandle,
  [in, optional] NDIS_HANDLE         CallMgrPartyContext,
  [in]           PCO_CALL_PARAMETERS CallParameters
);

Parametri

[in] Status

Specifica lo stato finale del tentativo di effettuare la connessione, NDIS_STATUS_SUCCESS o qualsiasi NDIS_STATUS_ determinato da CM NDIS_STATUS_ XXX tranne NDIS_STATUS_PENDING.

[in] NdisVcHandle

Specifica l'handle per il vc creato dal client, ottenuto originariamente come parametro di input per la funzione ProtocolCoCreateVc . Più di recente, il CM ha ottenuto questo handle dallo stato per VC designato dal CallMgrVcContext passato alla relativa funzione ProtocolCmMakeCall .

[in, optional] NdisPartyHandle

Specifica l'handle per la parte iniziale nel vc multipoint creato dal client, che il gestore chiamate ottenuto come parametro di input per la funzione ProtocolCmMakeCall . Se l'oggetto NdisVcHandle specificato rappresentava un VC da punto a punto, questo parametro era NULL.

[in, optional] CallMgrPartyContext

Specifica l'handle fornito da CM a un'area di contesto residente allocata dal chiamante, in cui il cm manterrà le informazioni sullo stato per parti o NULL se NdisPartyHandle è NULL. Per un vc multipoint, NDIS passa questo handle CallManagerPartyContext fornito da CM in tutte le chiamate successive alle funzioni ProtocolCmXxx che riguardano questa parte. In caso contrario, NDIS ignora questo parametro.

[in] CallParameters

Puntatore a una struttura di tipo CO_CALL_PARAMETERS che specifica i parametri di chiamata configurati per questa connessione se Status è NDIS_STATUS_SUCCESS.

Valore restituito

nessuno

Osservazioni

Un gestore chiamate autonomo deve chiamare NdisMCmMakeCallComplete con NDIS_STATUS_SUCCESS solo se il driver miniport sottostante è pronto per effettuare trasferimenti di dati nel VC. Vale a dire, il gestore chiamate ha negoziato con la rete per stabilire i parametri di chiamata per il VC e chiamato NdisCmActivateVc correttamente.

Un gestore chiamate autonomo deve chiamare NdisCmMakeCallComplete se la funzione ProtocolCmMakeCall restituita in precedenza NDIS_STATUS_PENDING per l'oggetto NdisVcHandle specificato. Il client che ha avviato la chiamata in uscita in sospeso non può usare il VC per effettuare trasferimenti fino a quando il cm chiama NdisCmMakeCallComplete con NDIS_STATUS_SUCCESS.

Anche se la connessione tentata non è riuscita, né NDIS né il client possono rilasciare le risorse allocate per mantenere lo stato fino a quando la chiamata di CM a NdisCmMakeCallComplete causa una chiamata a tale client Funzione ProtocolClMakeCallComplete . In effetti, ignorando di chiamare NdisCmMakeCallComplete per un tentativo non riuscito di configurare tale connessione causa anche una perdita di memoria nel gestore chiamate; impedisce al client di eliminare il vc creato per la chiamata in uscita non riuscita, quindi il cm non viene chiamato per rilasciare le risorse allocate per tale VC.

Se il cm supera un errore, ad esempio NDIS_STATUS_FAILURE, per lo stato, deve considerare NdisPartyHandle, se presente, non valido non appena chiama NdisCmMakeCallComplete. Il cm può rilasciare (o reinizializzare per il riutilizzo) qualsiasi risorsa allocata per mantenere lo stato per la determinata parte quando NdisCmMakeCallComplete restituisce il controllo. La funzione ProtocolCoDeleteVc di CM verrà successivamente chiamata per rilasciare qualsiasi risorsa allocata dal cm per tenere traccia dello stato del vc creato dal client ogni volta che il cm passa lo stato di errore a NdisCmMakeCallComplete.

Nel corso della configurazione di una chiamata in uscita avviata dal client, il cm può modificare i parametri di chiamata forniti dal client originariamente passati alla funzione ProtocolCmMakeCall . In caso affermativo, il cm deve passare le modifiche nel buffer in CallParameters quando chiama NdisCmMakeCallComplete. Se il client trova questi parametri di chiamata modificati non accettabili, verrà quindi rimossa la chiamata, che causa anche una chiamata alla funzione ProtocolCoDeleteVc di CM .

Solo i gestori di chiamate autonomi, che si registrano con NDIS come driver di protocollo, possono chiamare NdisCmMakeCallComplete. Driver miniport che forniscono una chiamata di supporto integrato per la gestione delle chiamate NdisMCmMakeCallComplete .

Requisiti

Requisito Valore
Client minimo supportato Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisCmMakeCallComplete (NDIS 5.1) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisCmMakeCallComplete (NDIS 5.1) in Windows XP.
Piattaforma di destinazione Desktop
Intestazione ndis.h (includere Ndis.h)
Libreria Ndis.lib
IRQL <= DISPATCH_LEVEL
Regole di conformità DDI Irql_CallManager_Function(ndis)

Vedi anche

CO_CALL_PARAMETERS

NdisAllocateFromNPagedLookasideList

NdisClMakeCall

NdisMCmMakeCallComplete

ProtocolClMakeCallComplete

ProtocolCmMakeCall

ProtocolCoDeleteVc