Registrando um SAP
Se um cliente aceitar chamadas recebidas, sua função ProtocolClOpenAfCompleteEx geralmente registrará um ou mais SAPs com o gerenciador de chamadas chamando NdisClRegisterSap.
A figura a seguir mostra um cliente de um gerenciador de chamadas registrando um SAP.
A figura a seguir mostra um cliente de um driver MCM registrando um SAP.
Com a chamada para NdisClRegisterSap, um cliente solicita notificações de chamadas de entrada em um SAP específico. O NDIS encaminha as informações do SAP fornecidas pelo cliente para a função ProtocolCmRegisterSap do gerenciador de chamadas ou do driver MCM para validação. Se o SAP fornecido já estiver em uso ou se o gerenciador de chamadas ou o driver MCM não reconhecer a especificação DO SAP fornecida pelo cliente, o gerenciador de chamadas ou o driver MCM falhará nessa solicitação.
Em ProtocolCmRegisterSap, o gerenciador de chamadas ou o driver MCM podem se comunicar com dispositivos de controle de rede ou outros agentes específicos da mídia para registrar o SAP na rede de um cliente orientado a conexões. ProtocolCmRegisterSap também armazena um NdisSapHandle fornecido pelo NDIS que representa o SAP.
ProtocolCmRegisterSap pode ser concluído de forma síncrona ou assíncrona. Para ser concluída de forma assíncrona, a função ProtocolCmRegisterSap de um gerenciador de chamadas chama NdisCmRegisterSapComplete. A função ProtocolCmRegisterSap de um driver MCM chama NdisMCmRegisterSapComplete. A chamada para Ndis(M)CmRegisterSapComplete faz com que o NDIS chame a função ProtocolClRegisterSapComplete do cliente.
Se a chamada do cliente para NdisClRegisterSap for bem-sucedida, o NDIS retornará ao cliente um NdisSapHandle que representa o SAP.
Depois que um gerenciador de chamadas registra um SAP em nome de um cliente orientado a conexões, ele notifica esse cliente de uma oferta de chamada de entrada direcionada a esse SAP chamando NdisCmDispatchIncomingCall. Um driver MCM chama NdisMCmDispatchIncomingCall (consulte Indicando uma chamada de entrada). Um cliente pode receber chamadas de entrada em um SAP mesmo enquanto o registro sap ainda estiver pendente; ou seja, antes que sua função ProtocolClRegisterSapComplete seja chamada.