PROTOCOL_CM_ADD_PARTY funzione di callback (ndis.h)

La funzione ProtocolCmAddParty è una funzione richiesta. ProtocolCmAddParty configura i parametri specifici dei supporti per aggiungere una parte a una chiamata multipoint esistente, archivia i dati sullo stato per la nuova parte e causa l'aggiunta della parte alla chiamata.

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

Sintassi

PROTOCOL_CM_ADD_PARTY ProtocolCmAddParty;

NDIS_STATUS ProtocolCmAddParty(
  [in]      NDIS_HANDLE CallMgrVcContext,
  [in, out] PCO_CALL_PARAMETERS CallParameters,
  [in]      NDIS_HANDLE NdisPartyHandle,
  [out]     PNDIS_HANDLE CallMgrPartyContext
)
{...}

Parametri

[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 .

[in, out] CallParameters

Puntatore a una struttura CO_CALL_PARAMETERS che contiene i parametri, specificati da un client orientato alla connessione, per la parte che viene aggiunta a una chiamata esistente.

[in] NdisPartyHandle

Specifica un handle, fornito da NDIS, che identifica in modo univoco una parte multipoint da aggiungere a una connessione virtuale esistente. Questo handle è opaco alla gestione chiamate e riservato per l'uso della libreria NDIS.

[out] CallMgrPartyContext

Specifica, in caso di restituzione, un handle a un'area di contesto fornita dal gestore chiamate in cui il gestore chiamate mantiene lo stato di questa parte per la chiamata a più punti.

Valore restituito

ProtocolCmAddParty restituisce lo stato delle operazioni come uno dei seguenti:

Codice restituito Descrizione
NDIS_STATUS_SUCCESS
Indica che il gestore chiamate ha assegnato correttamente le risorse necessarie per mantenere lo stato della parte e ha aggiunto correttamente la parte alla chiamata.
NDIS_STATUS_PENDING
Indica che il gestore chiamate completerà la richiesta per aggiungere una parte in modo asincrono. Quando il gestore chiamate ha completato tutte le operazioni per l'aggiunta della parte, deve chiamare NdisCmAddPartyComplete per segnalare NDIS che questa operazione è stata completata.
NDIS_STATUS_RESOURCES
Indica che la gestione chiamate non è in grado di allocare e/o inizializzare le relative risorse per l'aggiunta di una parte alla connessione.
NDIS_STATUS_NOT_SUPPORTED
Indica che il gestore chiamate non è stato in grado di aggiungere la parte alla chiamata multipoint perché il chiamante ha richiesto funzionalità non valide o non disponibili nei parametri di chiamata in CallParameters oppure che il tipo di supporto supportato da questo gestore chiamate non supporta le chiamate a più punti.

Commenti

ProtocolCmAddParty esegue tutte le allocazioni necessarie di risorse e strutture dinamiche che il gestore chiamate richiede di mantenere le informazioni sullo stato della parte, specificate da NdisPartyHandle, da aggiungere a una chiamata a più punti. Tali risorse possono includere, ma non sono limitati a, buffer di memoria, strutture di dati, eventi e altre risorse simili. I responsabili delle chiamate devono anche inizializzare strutture pertinenti per parti in questa funzione.

Nell'area stato per parti allocata dal gestore chiamate, il gestore chiamate deve archiviare l'handle specificato da NdisPartyHandle per riferimento nelle chiamate future. Dopo aver allocato e completato l'inizializzazione dell'area di stato per parti, l'indirizzo del buffer di stato deve essere impostato come handle CallMgrPartyContext prima di restituire il controllo a NDIS. A tale scopo, dereferenziare l'handle e archiviare un puntatore al buffer di stato come valore dell'handle. Ad esempio:

*CallMgrPartyContext = SomeBuffer;

I responsabili delle chiamate eseguono qualsiasi comunicazione necessaria con l'hardware di rete o con altri attori specifici del supporto, in base alle esigenze, per aggiungere la parte specificata dai parametri di chiamata in CallParameters a una chiamata multipoint esistente.

Esempi

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

MINIPORT_ADD_DEVICE MyCmAddParty;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
NDIS_STATUS
 MyCmAddParty(
    NDIS_HANDLE  CallMgrVcContext,
    PCO_CALL_PARAMETERS  CallParameters,
    NDIS_HANDLE  NdisPartyHandle,
    PNDIS_HANDLE  CallMgrPartyContext
    )
  {...}

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

Vedi anche

NdisClAddParty

ProtocolClAddPartyComplete