Condividi tramite


PROTOCOL_CO_AF_REGISTER_NOTIFY funzione di callback (ndis.h)

La funzione ProtocolCoAfRegisterNotify viene usata dai client NDIS orientati alla connessione. Tutti i client NDIS orientati alla connessione devono avere funzioni ProtocolCoAfRegisterNotify completamente funzionali. I gestori di chiamate orientate alla connessione autonoma hanno registrato funzioni ProtocolCoAfRegisterNotify che semplicemente restituiscono il controllo.

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

Sintassi

PROTOCOL_CO_AF_REGISTER_NOTIFY ProtocolCoAfRegisterNotify;

VOID() ProtocolCoAfRegisterNotify(
  [in] NDIS_HANDLE ProtocolBindingContext,
  [in] PCO_ADDRESS_FAMILY AddressFamily
)
{...}

Parametri

[in] ProtocolBindingContext

Specifica l'handle per l'area di contesto allocata dal client in cui il protocollo client mantiene lo stato di runtime per associazione. La funzione ProtocolBindAdapterEx del client ha fornito questo handle quando ha chiamato NdisOpenAdapterEx.

[in] AddressFamily

Puntatore a un buffer che descrive il supporto del protocollo di segnalazione fornito da un gestore chiamate che ha appena registrato questi servizi con NDIS chiamando NdisCmRegisterAddressFamilyEx o NdisMCmRegisterAddressFamilyEx.

Valore restituito

nessuno

Osservazioni

Una chiamata a ProtocolCoAfRegisterNotify annuncia i servizi di gestione delle chiamate o del driver MCM specifici in una scheda di interfaccia di rete orientata alla connessione sottostante a cui è associato il client.

ProtocolCoAfRegisterNotify esamina i dati in AddressFamily per determinare se il client può usare i servizi di questo particolare gestore chiamate. Se il client può apportare modifiche ai dati forniti da M)CM in AddressFamily dipende dal supporto specifico del protocollo di segnalazione del gestore chiamate.

Se il client trova i servizi di gestione delle chiamate offerti non accettabili, ProtocolCoAfRegisterNotify restituisce il controllo e NDIS potrebbe chiamare nuovamente ProtocolCoAfRegisterNotify con lo stesso handle ProtocolBindingContext e una specifica AF fornita da questo o da un altro gestore chiamate associata anche allo stesso driver miniport sottostante. In caso contrario, ProtocolAfRegisterNotify alloca un'area di contesto per af per il client e chiama NdisClOpenAddressFamilyEx con il puntatore AddressFamily . Se questa chiamata ha esito positivo, il client ha registrato le funzioni ProtocolClXxx con NDIS per operazioni orientate alla connessione successive usando i servizi di gestione chiamate.

Ad esempio, ProtocolCoAfRegisterNotify o ProtocolClOpenAfCompleteEx potrebbe chiamare NdisInitializeNPagedLookasideList una o più volte in preparazione per allocazioni dinamiche e versioni di per-SAP, per-VC e/o aree di contesto per parti necessarie successivamente dal client.

Se accetta chiamate in ingresso, il protocollo ProtocolCoAfRegisterNotify di un client o La funzione ProtocolClOpenAfCompleteEx registra in genere uno o più PROVIDER di servizi di gestione chiamate. Dopo aver aperto l'AF del gestore chiamate, il client potrebbe procedere allocare un'area di stato per SAP e chiamare NdisClRegisterSap una o più volte con l'NdisAfHandle ottenuto da NdisClOpenAddressFamilyEx. Se effettua chiamate in uscita, il client potrebbe procedere allocare un'area di stato per VC e creare un vc con NdisCoCreateVc in previsione di una richiesta in ingresso da uno dei propri client per effettuare una chiamata in uscita a un nodo remoto.

Esempi

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

PROTOCOL_CO_AF_REGISTER_NOTIFY MyCoAfRegisterNotify;

Implementare quindi la funzione come indicato di seguito:

_Use_decl_annotations_
VOID
 MyCoAfRegisterNotify(
    NDIS_HANDLE  ProtocolBindingContext,
    PCO_ADDRESS_FAMILY  AddressFamily
    )
  {...}

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

Vedi anche

CO_ADDRESS_FAMILY

NdisClOpenAddressFamilyEx

NdisClRegisterSap

NdisCmRegisterAddressFamilyEx

NdisCoCreateVc

NdisInitializeNPagedLookasideList NdisMCmRegisterAddressFamilyEx

NdisOpenAdapterEx

ProtocolBindAdapterEx

ProtocolClOpenAfCompleteEx