Partilhar via


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
S_OK
Indica que o validador definiu um SoHResponse no objeto 'request'.
E_PENDING
Indica que OnComplete() será chamado em um thread separado.
RPC_S_SERVER_UNAVAILABLE
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 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.

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
NapSystemHealthValidator.h
IDL
NapSystemHealthValidator.idl

Confira também

INapSystemHealthValidator