Método INapSystemHealthValidator::Validate
Observação
A plataforma de Proteção de Acesso à Rede não está disponível a partir do Windows 10
O método INapSystemHealthValidator::Validate é definido pelo desenvolvedor SHV e chamado pelo sistema NAP para validar o SoHRequest recebido de um cliente.
Sintaxe
HRESULT Validate(
[in] INapSystemHealthValidationRequest *request,
[in] UINT32 hintTimeOutInMsec,
[in] INapServerCallback *callback
);
Parâmetros
-
request [in]
-
Um ponteiro COM para um objeto INapSystemHealthValidationRequest que identifica o objeto de solicitação de validação.
-
hintTimeOutInMsec [in]
-
A duração, em milissegundos, do período de tempo limite de comunicação. O SHV (Validador de Integridade do Sistema) deve responder dentro desse período de tempo; caso contrário, a resposta será descartada.
Observação
O tempo limite padrão para todos os SHVs é de 2000 milissegundos. Usar um valor diferente do padrão alterará o tempo limite para todos os SHVs registrados.
-
retorno de chamada [in]
-
Um ponteiro para o objeto de retorno de chamada INapServerCallback. Esse ponteiro de retorno de chamada é usado pelos SHVs quando eles retornam E_PENDING da chamada para INapSystemHealthValidator::Validate. Isso é usado para validação assíncrona. Espera-se que os SHVs respondam dentro do tempo hintTimeOutInMsec ou então a resposta será descartada.
Valor retornado
Se qualquer outro código de erro for retornado, o sistema pressupõe que a falha de serverComponent ocorreu e o mapeamento apropriado será feito para passar/falhar.
Código de retorno | Descrição |
---|---|
|
Indica que o validador definiu um SoHResponse no objeto 'request'. |
|
Indica que OnComplete() será chamado em um thread separado. |
|
Indica que o processo do SHV (Validador de Integridade do Sistema) foi encerrado sem que o NapServer realmente liberasse uma referência a ele. O NapServer tentará recriar uma nova referência ao SHV e reexecuirá a chamada Validar uma vez. Se a criação do objeto ou o Validate executado novamente falhar, o SHV será removido da lista de SHVs carregados. A única maneira de esse SHV agora ser recarregado é cancelar o registro e registrar novamente o SHV ou quando o NapServer for reiniciado |
Comentários
Para dar suporte à detecção de intrusão, os SHVs serão solicitados a validar o computador cliente, independentemente de o cliente ter enviado um SoHRequest destinado ao SHV.
O SHV deve fazer o seguinte:
- Recupere o SoHRequest da solicitação chamando a solicitação. GetSoHRequest().
- Se o pacote SoHRequest for nulo:
- Se o SHV for um sistema de detecção de intrusão, preencha um pacote SoHRequest com o código de erro NAP apropriado sobre por que o computador cliente é mal-intencionado.
- Todos os outros SHVs devem preencher um pacote SoHRequest com um código de erro de NAP_E_MISSING_SOH.
- Se napSystemGenerated for TRUE da chamada para a solicitação. GetSoHRequest(), o SHV deve esperar um pacote SoH com as seguintes 3 TLVs: sohAttributeTypeSystemHealthId, sohAttributeTypeFailureCategory, sohAttributeTypeErrorCodes. Esse SoHRequest é gerado pelo NapAgent em nome do SHA (Agente de Integridade do Sistema), pois houve um erro ao recuperar um pacote de solicitação do SHA.
- Valide o pacote SoHRequest .
- Se o SoHRequest estiver malformado, construa um pacote SoHResponse com código de erro NAP_E_INVALID_PACKET.
- Se o SHV estiver usando apenas informações armazenadas em cache para validar o pacote SoHRequest (ou seja, nenhuma E/S é executada), ele poderá construir o SoHResponse, defini-lo no objeto na solicitação e retornar S_OK.
- Se o SHV estiver executando E/S para conversar com seus servidores de back-end para validar a integridade do cliente, ele deverá enfileirar a E/S e retornar essa função com E_PENDING. Nesse caso, o SHV deve chamar o retorno de chamada. OnComplete() em um thread separado dentro do período de tempo limite, hintTimeOutInMsec. Caso contrário, a resposta do SHV será descartada.
- Não retorne nenhum outro erro diferente daqueles listados acima. Se qualquer outro código de erro for retornado pelo SHV (por exemplo, algum erro do sistema), o pacote será descartado.
Um SHV deve retornar um sohAttributeTypeComplianceResultCodes ou sohAttributeTypeFailureCategory TLV em seu SoHRequest.
- sohAttributeTypeComplianceResultCodes TLV: se o SHV puder validar a integridade do cliente (ou seja, íntegro ou não íntegro), esse TLV será retornado.
- sohAttributeTypeFailureCategory TLV: se houver algum componente ou falha de comunicação no cliente ou servidor, ele deverá ser indicado por este TLV. Esse TLV ainda será mapeado para íntegro ou não íntegro, dependendo da configuração do SHV. Para obter mais detalhes, consulte a interface INapServerManagement e a estrutura FailureCategoryMapping .
O SHV não deve conter referências para solicitação ou retorno de chamada depois que a chamada assíncrona for concluída.
Requisitos
Requisito | Valor |
---|---|
Cliente mínimo com suporte |
Nenhum compatível |
Servidor mínimo com suporte |
Windows Server 2008 [somente aplicativos da área de trabalho] |
Cabeçalho |
|
IDL |
|