Função NdisClRegisterSap (ndis.h)
NdisClRegisterSap registra um SAP no qual o cliente pode receber chamadas de entrada de um nó remoto.
Sintaxe
NDIS_STATUS NdisClRegisterSap(
[in] NDIS_HANDLE NdisAfHandle,
[in] NDIS_HANDLE ProtocolSapContext,
[in] PCO_SAP Sap,
[out] PNDIS_HANDLE NdisSapHandle
);
Parâmetros
[in] NdisAfHandle
Especifica o identificador retornado por NdisClOpenAddressFamilyEx, que identifica implicitamente o gerenciador de chamadas com o qual registrar o SAP.
[in] ProtocolSapContext
Especifica o identificador para uma área de contexto residente fornecida pelo chamador na qual o cliente mantém o estado para esse SAP depois de aberto. O NDIS passa esse identificador de volta para o cliente em todas as chamadas subsequentes relacionadas a esse SAP se a chamada para NdisClRegisterSap for bem-sucedida.
[in] Sap
Ponteiro para uma especificação fornecida pelo cliente para que o SAP seja aberto, formatado como uma estrutura do tipo CO_SAP.
[out] NdisSapHandle
Ponteiro para uma variável na qual um identificador para o SAP recém-registrado será retornado se essa chamada for bem-sucedida.
Retornar valor
Quando NdisClRegisterSap retorna qualquer coisa diferente de NDIS_STATUS_PENDING, o cliente deve fazer uma chamada interna para sua Função ProtocolClRegisterSapComplete . Caso contrário, o NDIS chamará a função ProtocolClRegisterSapComplete do cliente quando essa operação for concluída.
Comentários
Com uma 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 para a função ProtocolCmRegisterSap do gerenciador de chamadas para validação. Se o SAP fornecido já estiver em uso ou se o gerenciador de chamadas não reconhecer a especificação fornecida pelo cliente no Sap, o gerenciador de chamadas falhará nessa solicitação.
O formato SAP é médio dependente e específico para a família de endereços compatível com o gerenciador de chamadas, que usa SAPs registrados posteriormente para rotear chamadas de entrada para o cliente apropriado. Um gerenciador de chamadas pode registrar SAPs para PVCs estabelecidos sem entrar em contato com outros componentes de rede, dependendo do meio subjacente.
Se sua chamada para NdisClRegisterSap for bem-sucedida, o cliente deverá salvar o identificador retornado em NdisSapHandle porque ele é um parâmetro necessário para NdisClDeregisterSap. Os chamadores de NdisClRegisterSap geralmente passam um ponteiro para uma variável na área de estado alocada pelo cliente em ProtocolSapContext para que o NDIS possa defini-lo como NdisSapHandle se essa chamada for bem-sucedida. O NDIS passa o ProtocolSapContext especificado para as funções ProtocolCl/CoXxx registradas do cliente em todas as chamadas subsequentes relacionadas a esse SAP até que o cliente chame NdisClDeregisterSap.
Normalmente, um cliente chama NdisClRegisterSap de sua função ProtocolAfRegisterNotify após sua chamada bem-sucedida para NdisClOpenAddressFamilyEx. Registrar um ou mais SAPs permite que o cliente receba suas chamadas de entrada assim que o gerenciador de chamadas as receber pela rede.
Em contraste com as chamadas de saída iniciadas pelo cliente, um cliente não chama NdisCoCreateVc antes de chamar NdisClRegisterSap. Para chamadas de entrada, o gerenciador de chamadas inicia a criação da VC, da seguinte maneira:
- Ao receber uma chamada de entrada em um SAP registrado, o gerenciador de chamadas primeiro chama NdisCoCreateVc, fazendo com que o NDIS chame a função ProtocolCoCreateVc do cliente.
- Quando a VC foi configurada e ativada, o gerenciador de chamadas chama NdisCmDispatchIncomingCall, fazendo com que o NDIS chame o cliente Função ProtocolClIncomingCall .
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte | Com suporte para drivers NDIS 6.0 e NDIS 5.1 (consulte NdisClRegisterSap (NDIS 5.1)) no Windows Vista. Com suporte para drivers NDIS 5.1 (consulte NdisClRegisterSap (NDIS 5.1)) no Windows XP. |
Plataforma de Destino | Área de Trabalho |
Cabeçalho | ndis.h (inclua Ndis.h) |
Biblioteca | Ndis.lib |
IRQL | <= DISPATCH_LEVEL |
Regras de conformidade de DDI | Irql_Protocol_Driver_Function(ndis) |