Funzione NdisClRegisterSap (ndis.h)
NdisClRegisterSap registra un sap in cui il client può ricevere chiamate in ingresso da un nodo remoto.
Sintassi
NDIS_STATUS NdisClRegisterSap(
[in] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE ProtocolSapContext,
[in] PCO_SAP Sap,
[out] PNDIS_HANDLE NdisSapHandle
);
Parametri
[in] NdisAfHandle
Specifica l'handle restituito da NdisClOpenAddressFamilyEx, che identifica in modo implicito il gestore chiamate con cui registrare SAP.
[in] ProtocolSapContext
Specifica l'handle di un'area del contesto residente fornita dal chiamante in cui il client mantiene lo stato per questo SAP dopo l'apertura. NDIS passa di nuovo questo handle al client in tutte le chiamate successive relative a questo SAP se la chiamata a NdisClRegisterSap ha esito positivo.
[in] Sap
Puntatore a una specifica fornita dal client per l'apertura di SAP, formattata come struttura di tipo CO_SAP.
[out] NdisSapHandle
Puntatore a una variabile in cui viene restituito un handle al sap appena registrato se la chiamata ha esito positivo.
Valore restituito
Quando NdisClRegisterSap restituisce qualsiasi valore diverso da NDIS_STATUS_PENDING, il client deve effettuare una chiamata interna al relativo Funzione ProtocolClRegisterSapComplete . In caso contrario, NDIS chiama la funzione ProtocolClRegisterSapComplete del client al termine di questa operazione.
Commenti
Con una chiamata a NdisClRegisterSap, un client richiede notifiche di chiamate in ingresso in un determinato SAP. NDIS inoltra le informazioni SAP specificate alla funzione ProtocolCmRegisterSap del gestore chiamate per la convalida. Se sap specificato è già in uso o se il gestore chiamate non riconosce la specifica fornita dal client in Sap, il gestore chiamate non riesce a eseguire questa richiesta.
Il formato SAP è dipendente dal supporto e specifico della famiglia di indirizzi supportata dal gestore chiamate, che usa i provider di sicurezza registrati successivamente per instradare le chiamate in ingresso al client appropriato. Un gestore chiamate può registrare i provider di servizi di sicurezza per i PVC stabiliti senza contattare altri componenti di rete, a seconda del supporto sottostante.
Se la chiamata a NdisClRegisterSap ha esito positivo, il client deve salvare l'handle restituito in NdisSapHandle perché è un parametro obbligatorio per NdisClDeregisterSap. I chiamanti di NdisClRegisterSap passano in genere un puntatore a una variabile nell'area di stato allocata dal client in ProtocolSapContext in modo che NDIS possa impostarlo su NdisSapHandle se la chiamata ha esito positivo. NDIS passa il protocolSapContext specificato alle funzioni ProtocolCl/CoXxx registrate del client in tutte le chiamate successive relative a questo SAP finché il client non chiama NdisClDeregisterSap.
In genere, un client chiama NdisClRegisterSap dalla relativa funzione ProtocolAfRegisterNotify dopo la chiamata riuscita a NdisClOpenAddressFamilyEx. La registrazione di uno o più provider di servizi di configurazione consente al client di ricevere le chiamate in ingresso non appena il gestore chiamate le riceve in rete.
Al contrario delle chiamate in uscita avviate dal client, un client non chiama NdisCoCreateVc prima di chiamare NdisClRegisterSap. Per le chiamate in arrivo, il gestore chiamate avvia la creazione del vc, come indicato di seguito:
- Al ricevimento di una chiamata in arrivo su un SAP registrato, il gestore chiama prima NdisCoCreateVc, causando la chiamata della funzione ProtocolCoCreateVc del client.
- Quando il vc è stato configurato e attivato, il gestore chiamate NdisCmDispatchIncomingCall, causando la chiamata di NDIS al client Funzione ProtocolClIncomingCall .
Requisiti
Requisito | Valore |
---|---|
Client minimo supportato | Supportato per i driver NDIS 6.0 e NDIS 5.1 (vedere NdisClRegisterSap (NDIS 5.1)) in Windows Vista. Supportato per i driver NDIS 5.1 (vedere NdisClRegisterSap (NDIS 5.1)) in Windows XP. |
Piattaforma di destinazione | Desktop |
Intestazione | ndis.h (include Ndis.h) |
Libreria | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regole di conformità DDI | Irql_Protocol_Driver_Function(ndis) |