Condividi tramite


PROTOCOL_CL_ADD_PARTY_COMPLETE funzione di callback (ndis.h)

La funzione ProtocolClAddPartyComplete è necessaria per i client NDIS orientati alla connessione che configurano connessioni multipoint. Tali client devono avere funzioni ProtocolClAddPartyComplete per completare le operazioni asincrone avviate con NdisClAddParty. In caso contrario, tale funzione ProtocolClAddPartyComplete del driver di protocollo può semplicemente restituire il controllo.

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

Sintassi

PROTOCOL_CL_ADD_PARTY_COMPLETE ProtocolClAddPartyComplete;

void ProtocolClAddPartyComplete(
  [in] NDIS_STATUS Status,
  [in] NDIS_HANDLE ProtocolPartyContext,
  [in] NDIS_HANDLE NdisPartyHandle,
  [in] PCO_CALL_PARAMETERS CallParameters
)
{...}

Parametri

[in] Status

Specifica lo stato finale dell'operazione di componente aggiuntivo avviata dal client, che può essere una delle seguenti:

NDIS_STATUS_SUCCESS

La parte specificata è stata aggiunta nel VC multipoint attivo del client.

NDIS_STATUS_RESOURCES

NDIS non è riuscito a allocare risorse sufficienti per tenere traccia della nuova parte.

NDIS_STATUS_FAILURE

Il client ha passato un valore NdisVcHandle non valido a NdisClAddParty.

NDIS_STATUS_XXX

La funzione ProtocolCmAddParty del gestore chiamate ha restituito un valore determinato da CM per indicare perché non è stato possibile aggiungere la parte al VC.

[in] ProtocolPartyContext

Specifica l'handle fornito dal client passato originariamente a NdisClAddParty.

[in] NdisPartyHandle

Se Status è NDIS_STATUS_SUCCESS, questo handle fornito da NDIS rappresenta l'associazione tra il gestore chiamate e il client relativi a questa parte. In caso contrario, il tentativo di aggiungere una parte non è riuscito e il client deve considerare questo parametro un handle non valido.

[in] CallParameters

Puntatore a una struttura di tipo CO_CALL_PARAMETERS, originariamente configurata dal client per la chiamata a NdisClAddParty , ma eventualmente modificata successivamente dal gestore chiamate.

Valore restituito

nessuno

Osservazioni

Una chiamata a ProtocolClAddPartyComplete indica il completamento dell'operazione asincrona avviata quando il client denominato NdisClAddParty. Se lo stato di input è impostato su qualsiasi elemento diverso da NDIS_STATUS_SUCCESS, ProtocolClAddPartyComplete può rilasciare o riutilizzare i buffer allocati client in ProtocolPartyContext e in CallParameters .

Se il tentativo di aggiungere una parte ha avuto esito positivo, ProtocolClAddPartyComplete deve salvare l'input NdisPartyHandle per le chiamate successive alle funzioni della libreria NDIS relative a questa parte nell'area ProtocolPartyContext del client. Ad esempio, il client deve passare questo handle in una chiamata successiva a NdisClDropParty , a meno che la parte remota che rappresenta chiude prima la connessione.

La struttura in CallParameters originariamente è stata allocata e inizializzata dal client, che ha passato questo puntatore a
NdisClAddParty. Tuttavia, il chiamante potrebbe aver modificato i valori forniti dal client in modo da riflettere i risultati della negoziazione del cm con la rete o con un peer di segnalazione durante l'elaborazione della richiesta di componente aggiuntivo del client. Per determinare se la gestione chiamate ha apportato eventuali modifiche, ProtocolClAddPartyComplete può controllare il membro Flags di questa struttura per verificare se CALL_PARAMETERS_CHANGED è impostato. In tal caso, ProtocolClAddPartyComplete deve aggiornare lo stato per parti gestito dal client per questa chiamata in ProtocolPartyContext , a meno che non trovi le modifiche di CM non accettabili. Il protocollo di segnalazione specifico determina cosa può fare il client in questo caso. In genere, un client chiama NdisClDropParty se rileva i parametri di chiamata modificati da CM non accettabili.

A seconda del protocollo di segnalazione del gestore chiamate, i parametri di traffico in CallParameters possono essere identici per tutte le parti in qualsiasi connessione a più punti. Ovvero, poiché il client di tale gestore chiamate aggiunge parti su una connessione multipoint che il client originariamente configurato con NdisClMakeCall, può fornire solo l'indirizzo di destinazione di ogni parte e lasciare i parametri di traffico come originariamente configurati per il VC a più punti ogni volta che chiama NdisClAddParty.

Esempi

Per definire una funzione ProtocolClAddPartyComplete , è 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 ProtocolClAddPartyComplete denominata "MyClAddPartyComplete ", usare il tipo di PROTOCOL_CL_ADD_PARTY_COMPLETE come illustrato in questo esempio di codice:

PROTOCOL_CL_ADD_PARTY_COMPLETE MyClAddPartyComplete;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyClAddPartyComplete(
    NDIS_STATUS  Status,
    NDIS_HANDLE  ProtocolPartyContext,
    NDIS_HANDLE  NdisPartyHandle,
    PCO_CALL_PARAMETERS  CallParameters
    )
  {...}

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

Vedi anche

CO_CALL_PARAMETERS

NdisClAddParty

NdisClDropParty

NdisClMakeCall

NdisCmAddPartyComplete

NdisMCmAddPartyComplete

ProtocolClIncomingDropParty

ProtocolCmAddParty